diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-29 23:34:07 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-03-29 23:34:07 +0000 |
commit | 1c9a50141d128a02150d0adca3684f957e3e994f (patch) | |
tree | a08456d54c4a86731e77267069e5a02ef025d5ed /kdesktop/bgmanager.cc | |
parent | ab252e87d243d448bb66749ee5836883fd5431a9 (diff) | |
download | tdebase-1c9a50141d128a02150d0adca3684f957e3e994f.tar.gz tdebase-1c9a50141d128a02150d0adca3684f957e3e994f.zip |
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
Diffstat (limited to 'kdesktop/bgmanager.cc')
-rw-r--r-- | kdesktop/bgmanager.cc | 16 |
1 files changed, 13 insertions, 3 deletions
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 ) { |