summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock/lockprocess.cc
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-05-03 15:55:11 -0500
committerSlávek Banko <slavek.banko@axis.cz>2013-05-05 05:09:57 +0200
commit20180a433681e96f62b7fae29800b0cdd560e775 (patch)
tree29a9f64a00513891b29cc2d02098b177435b7e3c /kdesktop/lock/lockprocess.cc
parent1f8bdc6151e34f22dbcf4c863a67636451f48dfb (diff)
downloadtdebase-20180a433681e96f62b7fae29800b0cdd560e775.tar.gz
tdebase-20180a433681e96f62b7fae29800b0cdd560e775.zip
Properly fix task tray background glitches
Ensure session is fully locked before switching to new VT when lock is requested (cherry picked from commit 3cce16c2543ebd7441477b466b35c89333eef28c)
Diffstat (limited to 'kdesktop/lock/lockprocess.cc')
-rw-r--r--kdesktop/lock/lockprocess.cc19
1 files changed, 19 insertions, 0 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index a0d8b781e..ff12d2059 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -173,6 +173,7 @@ extern bool trinity_desktop_lock_hide_active_windows;
extern bool trinity_desktop_lock_forced;
extern bool argb_visual;
+extern pid_t kdesktop_pid;
extern TQXLibWindowList trinity_desktop_lock_hidden_window_list;
@@ -224,6 +225,7 @@ LockProcess::LockProcess()
mHackStartupEnabled(true),
mOverrideHackStartupEnabled(false),
mResizingDesktopLock(false),
+ mFullyOnlineSent(false),
m_rootPixmap(NULL),
mBackingStartupDelayTimer(0),
m_startupStatusDialog(NULL),
@@ -1091,6 +1093,8 @@ void LockProcess::createSaverWindow()
}
}
+ fullyOnline();
+
kdDebug(1204) << "Saver window Id: " << winId() << endl;
}
@@ -2751,4 +2755,19 @@ void LockProcess::slotMouseActivity(XEvent *event)
}
}
+void LockProcess::fullyOnline() {
+ if (!mFullyOnlineSent) {
+ if (kdesktop_pid > 0) {
+ if (kill(kdesktop_pid, SIGUSR2) < 0) {
+ // The controlling kdesktop process probably died. Commit suicide...
+ // Exit uncleanly
+ exit(1);
+ }
+ else {
+ mFullyOnlineSent = true;
+ }
+ }
+ }
+}
+
#include "lockprocess.moc"