summaryrefslogtreecommitdiffstats
path: root/kdesktop/desktop.cc
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2013-04-07 16:25:16 -0500
committerTimothy Pearson <[email protected]>2013-04-07 16:25:16 -0500
commit97c65270b2d50c99da341da6c04f86a5644b4b4b (patch)
tree5fe0e79d321fd31712decdc4885f7c6b36221fb1 /kdesktop/desktop.cc
parent8d2f9ae31522a472de122e849d206a869f248773 (diff)
downloadtdebase-97c65270b2d50c99da341da6c04f86a5644b4b4b.tar.gz
tdebase-97c65270b2d50c99da341da6c04f86a5644b4b4b.zip
Wait for all kicker containers to load before sending desktop size to kdesktop
This resolves a long standing bug where icons would not stay put across logout / login cycles Properly handle desktop area changes when align to grid is enabled
Diffstat (limited to 'kdesktop/desktop.cc')
-rw-r--r--kdesktop/desktop.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/kdesktop/desktop.cc b/kdesktop/desktop.cc
index 45ae1e8e5..b3893c029 100644
--- a/kdesktop/desktop.cc
+++ b/kdesktop/desktop.cc
@@ -346,7 +346,8 @@ void KDesktop::slotNoKicker()
kdDebug(1204) << "KDesktop::slotNoKicker ... kicker did not respond" << endl;
// up till now, we got no desktopIconsArea from kicker - probably
// it's not running, so use the area from KWinModule
- m_pIconView->updateWorkArea(twinModule()->workArea(twinModule()->currentDesktop()));
+ TQRect area = twinModule()->workArea(twinModule()->currentDesktop());
+ m_pIconView->updateWorkArea(area);
}
void
@@ -908,8 +909,9 @@ void KDesktop::desktopIconsAreaChanged(const TQRect &area, int screen)
// This is pretty broken, mixes Xinerama and non-Xinerama multihead
// and generally doesn't seem to be required anyway => ignore screen.
- if ( /*(screen == kdesktop_screen_number) &&*/ m_pIconView )
+ if ( /*(screen == kdesktop_screen_number) &&*/ m_pIconView ) {
m_pIconView->updateWorkArea(area);
+ }
}
void KDesktop::slotSwitchDesktops(int delta)
@@ -1120,7 +1122,9 @@ void KDesktop::desktopResized()
res >> area;
}
else
+ {
area = twinModule()->workArea(twinModule()->currentDesktop());
+ }
m_pIconView->updateWorkArea(area);
m_pIconView->startDirLister();