summaryrefslogtreecommitdiffstats
path: root/kdesktop/lock/lockprocess.cc
diff options
context:
space:
mode:
authorTimothy Pearson <[email protected]>2013-08-08 00:45:07 -0500
committerTimothy Pearson <[email protected]>2013-08-08 00:45:07 -0500
commit6a40ac081b1f96db4764803305fa442f25b5069e (patch)
treeb3a75677b465d8768859a076e7fb1c1f9c2e00d1 /kdesktop/lock/lockprocess.cc
parentda560698f1098a4ebca54ead7436110003f2a716 (diff)
downloadtdebase-6a40ac081b1f96db4764803305fa442f25b5069e.tar.gz
tdebase-6a40ac081b1f96db4764803305fa442f25b5069e.zip
Ensure screen is fully hidden before returning from kdestop lock dcop call
Diffstat (limited to 'kdesktop/lock/lockprocess.cc')
-rw-r--r--kdesktop/lock/lockprocess.cc13
1 files changed, 11 insertions, 2 deletions
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
index aa4bdd570..f482dcd17 100644
--- a/kdesktop/lock/lockprocess.cc
+++ b/kdesktop/lock/lockprocess.cc
@@ -559,7 +559,7 @@ bool LockProcess::lock()
tqApp->processEvents();
#endif
- if (startSaver()) {
+ if (startSaver(true)) {
// In case of a forced lock we don't react to events during
// the dead-time to give the screensaver some time to activate.
// That way we don't accidentally show the password dialog before
@@ -1322,7 +1322,7 @@ void LockProcess::setTransparentBackgroundARGB()
//
// Start the screen saver.
//
-bool LockProcess::startSaver()
+bool LockProcess::startSaver(bool notify_ready)
{
if (!child_saver && !grabInput())
{
@@ -1370,6 +1370,10 @@ bool LockProcess::startSaver()
erase();
}
+ if (notify_ready) {
+ saverReady();
+ }
+
if (trinity_desktop_lock_in_sec_dlg == FALSE) {
if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced && trinity_desktop_lock_use_system_modal_dialogs) {
ENABLE_CONTINUOUS_LOCKDLG_DISPLAY
@@ -2777,6 +2781,11 @@ void LockProcess::fullyOnline() {
}
}
+void LockProcess::saverReady() {
+ DCOPRef ref( "kdesktop", "KScreensaverIface");
+ ref.send( "saverLockReady" );
+}
+
//===========================================================================
//
// Control pipe handler