summaryrefslogtreecommitdiffstats
path: root/kicker/kicker
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-03 15:55:11 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-03 15:55:11 -0500
commit3cce16c2543ebd7441477b466b35c89333eef28c (patch)
treecc54cc6cf5bdcaf59b96318400657be53efdca74 /kicker/kicker
parent667839ee6560a10aca54885dbf8951b77bdc21b2 (diff)
downloadtdebase-3cce16c2543ebd7441477b466b35c89333eef28c.tar.gz
tdebase-3cce16c2543ebd7441477b466b35c89333eef28c.zip
Properly fix task tray background glitches
Ensure session is fully locked before switching to new VT when lock is requested
Diffstat (limited to 'kicker/kicker')
-rw-r--r--kicker/kicker/ui/k_mnu.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/kicker/kicker/ui/k_mnu.cpp b/kicker/kicker/ui/k_mnu.cpp
index 8ab0d3a0f..e7a7a0fb0 100644
--- a/kicker/kicker/ui/k_mnu.cpp
+++ b/kicker/kicker/ui/k_mnu.cpp
@@ -448,9 +448,14 @@ extern int kicker_screen_number;
void PanelKMenu::slotLock()
{
TQCString appname( "kdesktop" );
- if ( kicker_screen_number )
+ if ( kicker_screen_number ) {
appname.sprintf("kdesktop-screen-%d", kicker_screen_number);
- kapp->dcopClient()->send(appname, "KScreensaverIface", "lock()", TQString(""));
+ }
+ TQCString replyType;
+ TQByteArray replyData;
+ // Block here until lock is complete
+ // If this is not done the desktop of the locked session will be shown after VT switch until the lock fully engages!
+ kapp->dcopClient()->call(appname, "KScreensaverIface", "lock()", TQCString(""), replyType, replyData);
}
void PanelKMenu::slotLogout()
@@ -520,8 +525,9 @@ void PanelKMenu::doNewSession( bool lock )
if (result==KMessageBox::Cancel)
return;
- if (lock)
+ if (lock) {
slotLock();
+ }
DM().startReserve();
}