summaryrefslogtreecommitdiffstats
path: root/kdesktop/bgmanager.cc
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-29 23:34:07 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2010-03-29 23:34:07 +0000
commit1c9a50141d128a02150d0adca3684f957e3e994f (patch)
treea08456d54c4a86731e77267069e5a02ef025d5ed /kdesktop/bgmanager.cc
parentab252e87d243d448bb66749ee5836883fd5431a9 (diff)
downloadtdebase-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.cc16
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 )
{