summaryrefslogtreecommitdiffstats
path: root/kdesktop/bgmanager.cc
diff options
context:
space:
mode:
Diffstat (limited to 'kdesktop/bgmanager.cc')
-rw-r--r--kdesktop/bgmanager.cc21
1 files changed, 19 insertions, 2 deletions
diff --git a/kdesktop/bgmanager.cc b/kdesktop/bgmanager.cc
index 7a9fe5fd5..c3317708c 100644
--- a/kdesktop/bgmanager.cc
+++ b/kdesktop/bgmanager.cc
@@ -243,6 +243,16 @@ void KBackgroundManager::configure()
// Repaint desktop
slotChangeDesktop(0);
+
+ // Redraw all desktops so that applications relying on exported data, e.g. kpager, continue to work properly
+ 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);
+ }
}
@@ -947,8 +957,15 @@ void KBackgroundManager::desktopResized()
slotChangeDesktop(0);
repaintBackground();
- // Signal KWin that the usable desktop area has probably changed...
- // Use the DCOP signal kDestopResized
+ // Redraw all desktops so that applications relying on exported data, e.g. kpager, continue to work properly
+ 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);
+ }
}
// DCOP exported