userMenu: Do not save/restore IDLE session status
When restoring the previous sesssion presence, we forcefully set gnome-session's status. In the case of IDLE, this will trigger the screensaver, which is clearly unwanted first thing after login. We should only save and restore statuses that are explicitly set by the user anyway, so limit presence saving to AVAILABLE and BUSY statuses. https://bugzilla.gnome.org/show_bug.cgi?id=665701
This commit is contained in:
parent
bd6f1f2c6d
commit
a901f2dc5d
@ -390,6 +390,13 @@ const IMStatusChooserItem = new Lang.Class({
|
||||
|
||||
if (!this._sessionPresenceRestored) {
|
||||
let savedStatus = global.settings.get_int('saved-session-presence');
|
||||
|
||||
// We should never save/restore a status other than AVAILABLE
|
||||
// or BUSY
|
||||
if (savedStatus != GnomeSession.PresenceStatus.AVAILABLE &&
|
||||
savedStatus != GnomeSession.PresenceStatus.BUSY)
|
||||
savedStatus = GnomeSession.PresenceStatus.AVAILABLE;
|
||||
|
||||
if (sessionStatus != savedStatus) {
|
||||
this._presence.status = savedStatus;
|
||||
return;
|
||||
@ -397,7 +404,9 @@ const IMStatusChooserItem = new Lang.Class({
|
||||
this._sessionPresenceRestored = true;
|
||||
}
|
||||
|
||||
global.settings.set_int('saved-session-presence', sessionStatus);
|
||||
if (sessionStatus == GnomeSession.PresenceStatus.AVAILABLE ||
|
||||
sessionStatus == GnomeSession.PresenceStatus.BUSY)
|
||||
global.settings.set_int('saved-session-presence', sessionStatus);
|
||||
|
||||
let [presence, s, msg] = this._accountMgr.get_most_available_presence();
|
||||
let newPresence, status;
|
||||
|
Loading…
Reference in New Issue
Block a user