Sophie

Sophie

distrib > Mageia > 1 > i586 > media > core-updates-src > by-pkgid > 83ecf8f3cf39318860f0dc9917c84068 > files > 34

kdebase4-workspace-4.6.5-1.4.mga1.src.rpm

commit c6cacf0123c08c21fbe49d48b0cdb86ad6a647cb
Author: Oswald Buddenhagen <ossi@kde.org>
Date:   Sat Oct 1 11:04:50 2011 +0200

    lock screen _before_ switching session
    
    otherwise the lock won't be able to kick in until the session gets
    re-activated, which leaves a race condition.
    
    BUG: 206339
    FIXED-IN: 4.7.3
    
    (cherry picked from commit e8416bf807f399fc9748528f3b186eb78123b857)

diff --git a/libs/kworkspace/kdisplaymanager.cpp b/libs/kworkspace/kdisplaymanager.cpp
index bd5c974..9a19295 100644
--- a/libs/kworkspace/kdisplaymanager.cpp
+++ b/libs/kworkspace/kdisplaymanager.cpp
@@ -596,10 +596,11 @@ KDisplayManager::switchVT(int vt)
 void
 KDisplayManager::lockSwitchVT(int vt)
 {
-    if (switchVT(vt)) {
-        QDBusInterface screensaver("org.freedesktop.ScreenSaver", "/ScreenSaver", "org.freedesktop.ScreenSaver");
-        screensaver.call("Lock");
-    }
+    // Lock first, otherwise the lock won't be able to kick in until the session is re-activated.
+    QDBusInterface screensaver("org.freedesktop.ScreenSaver", "/ScreenSaver", "org.freedesktop.ScreenSaver");
+    screensaver.call("Lock");
+
+    switchVT(vt);
 }
 
 void