diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-04-07 16:25:16 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-04-07 16:25:16 -0500 |
commit | 97c65270b2d50c99da341da6c04f86a5644b4b4b (patch) | |
tree | 5fe0e79d321fd31712decdc4885f7c6b36221fb1 /kdesktop/desktop.cc | |
parent | 8d2f9ae31522a472de122e849d206a869f248773 (diff) | |
download | tdebase-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.cc | 8 |
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(); |