From 1c9a50141d128a02150d0adca3684f957e3e994f Mon Sep 17 00:00:00 2001 From: tpearson Date: Mon, 29 Mar 2010 23:34:07 +0000 Subject: Fixed pager background loading failure on inactive desktop and high CPU usage on Desktop 1 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1108873 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kdesktop/bgmanager.cc | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'kdesktop') diff --git a/kdesktop/bgmanager.cc b/kdesktop/bgmanager.cc index 6274cf757..0beb49c93 100644 --- a/kdesktop/bgmanager.cc +++ b/kdesktop/bgmanager.cc @@ -97,11 +97,20 @@ KBackgroundManager::KBackgroundManager(QWidget *desktop, KWinModule* kwinModule) SLOT(slotChangeNumberOfDesktops(int))); connect(m_pKwinmodule, SIGNAL(currentDesktopViewportChanged(int, const QPoint&)), SLOT(slotChangeViewport(int, const QPoint&))); - + #if (QT_VERSION-0 >= 0x030200) connect( kapp->desktop(), SIGNAL( resized( int )), SLOT( desktopResized())); // RANDR support #endif + + QSize s(m_pKwinmodule->numberOfViewports(m_pKwinmodule->currentDesktop())); + m_numberOfViewports = s.width() * s.height(); + if (m_numberOfViewports < 1) { + m_numberOfViewports = 1; + } + for (unsigned j=0;j<(m_pKwinmodule->numberOfDesktops() * m_numberOfViewports);j++) { + renderBackground(j); + } } @@ -307,7 +316,7 @@ void KBackgroundManager::slotChangeDesktop(int desk) if (m_numberOfViewports < 1) { m_numberOfViewports = 1; } - + if (desk == 0) desk = realDesktop(); else @@ -545,7 +554,8 @@ void KBackgroundManager::slotImageDone(int desk) delete pm; if (current) - exportBackground(desk, realDesktop()); + //exportBackground(desk, realDesktop()); + exportBackground(desk, desk); if( do_cleanup ) { -- cgit v1.2.1