From c632074ba7734b6b0b057ebec0d7535694c8ccf6 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Tue, 5 Jul 2011 09:29:05 -0400 Subject: [PATCH] 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 file changed, 6 insertions(+), 2 deletions(-) diff --git a/js/ui/statusMenu.js b/js/ui/statusMenu.js index 7d49743ae..327fc4bbf 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); }));