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:
Florian Müllner 2012-03-03 08:35:03 +01:00
parent bd6f1f2c6d
commit a901f2dc5d

View File

@ -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;