[gnome-shell] statusMenu.js: Ensure screensaver is locked before switching users



commit c632074ba7734b6b0b057ebec0d7535694c8ccf6
Author: Colin Walters <walters verbum org>
Date:   Tue Jul 5 09:29:05 2011 -0400

    statusMenu.js: Ensure screensaver is locked before switching users
    
    Somewhat similar to (see bug 637540), we need to lock the screensaver
    *before* asking GDM to switch.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=654565

 js/ui/statusMenu.js |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/statusMenu.js b/js/ui/statusMenu.js
index 7d49743..327fc4b 100644
--- a/js/ui/statusMenu.js
+++ b/js/ui/statusMenu.js
@@ -301,8 +301,11 @@ StatusMenuButton.prototype = {
 
     _onLoginScreenActivate: function() {
         Main.overview.hide();
-        this._gdm.goto_login_session();
-        this._onLockScreenActivate();
+        // Ensure we only move to GDM after the screensaver has activated; in some
+        // OS configurations, the X server may block event processing on VT switch
+        this._screenSaverProxy.setActiveRemote(true, Lang.bind(this, function() {
+            this._gdm.goto_login_session();
+        }));
     },
 
     _onQuitSessionActivate: function() {
@@ -315,6 +318,7 @@ StatusMenuButton.prototype = {
 
         if (this._haveSuspend &&
             this._suspendOrPowerOffItem.state == PopupMenu.PopupAlternatingMenuItemState.DEFAULT) {
+            // Ensure we only suspend after the screensaver has activated
             this._screenSaverProxy.SetActiveRemote(true, Lang.bind(this, function() {
                 this._upClient.suspend_sync(null);
             }));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]