Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:GA
gnome-shell
login-prompt-preserve-session-choice.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File login-prompt-preserve-session-choice.patch of Package gnome-shell
Index: js/gdm/authPrompt.js =================================================================== --- js/gdm/authPrompt.js.orig 2014-06-24 15:59:51.179905395 +0800 +++ js/gdm/authPrompt.js 2014-07-02 18:32:16.673524278 +0800 @@ -90,6 +90,9 @@ const AuthPrompt = new Lang.Class({ y_fill: true, expand: true }); this._label = new St.Label({ style_class: 'login-dialog-prompt-label' }); + // record the current user session choice, so it didn't get lost in + // verification failure. (bnc#870560) + this.activeSessionChoice = null; this.actor.add(this._label, { expand: true, @@ -412,6 +415,7 @@ const AuthPrompt = new Lang.Class({ this._message.opacity = 0; this.setUser(null); + this.activeSessionChoice = null; this.updateSensitivity(true); this._entry.set_text(''); Index: js/gdm/loginDialog.js =================================================================== --- js/gdm/loginDialog.js.orig 2014-07-02 15:17:29.837915386 +0800 +++ js/gdm/loginDialog.js 2014-07-02 18:34:15.214544398 +0800 @@ -317,6 +317,9 @@ const SessionMenuButton = new Lang.Class this._menu.toggle(); })); + // whether a session is manually activated for session menu items + this._is_manually_activated = false; + this._items = {}; this._activeSessionId = null; this._populate(); @@ -346,6 +349,11 @@ const SessionMenuButton = new Lang.Class this._updateOrnament(); this.emit('session-activated', this._activeSessionId); + + if ( this._is_manually_activated ){ + this.emit('session-manually-activated', this._activeSessionId); + this._is_manually_activated = false; + } }, close: function() { @@ -373,6 +381,7 @@ const SessionMenuButton = new Lang.Class this.setActiveSession(id); item.connect('activate', Lang.bind(this, function() { + this._is_manually_activated = true; this.setActiveSession(id); })); } @@ -512,6 +521,13 @@ const LoginDialog = new Lang.Class({ Lang.bind(this, function(list, sessionId) { this._greeter.call_select_session_sync (sessionId, null); })); + this._sessionMenuButton.connect('session-manually-activated', + Lang.bind(this, function(list, sessionId){ + if (this._shouldShowSessionMenuButton()){ + this._authPrompt.activeSessionChoice = sessionId; + } + })); + this._sessionMenuButton.actor.opacity = 0; this._sessionMenuButton.actor.show(); this._authPrompt.addActorToDefaultButtonWell(this._sessionMenuButton.actor); @@ -619,6 +635,11 @@ const LoginDialog = new Lang.Class({ if (this._shouldShowSessionMenuButton()) this._authPrompt.setActorInDefaultButtonWell(this._sessionMenuButton.actor); + + if (this._authPrompt.activeSessionChoice){ + this._sessionMenuButton.setActiveSession(this._authPrompt.activeSessionChoice); + } + this._showPrompt(); },
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor