endSessionDialog: don't process response until closed
Right now if a user logs out, they are thrown to the login screen imediately, without even seeing the dialog close. This commit fades the dialog out before processing the logout. https://bugzilla.gnome.org/show_bug.cgi?id=694296
This commit is contained in:
parent
677cdfd6c8
commit
b4b13b0cb9
@ -379,7 +379,12 @@ const EndSessionDialog = new Lang.Class({
|
|||||||
let signal = dialogContent.confirmButtons[i].signal;
|
let signal = dialogContent.confirmButtons[i].signal;
|
||||||
let label = dialogContent.confirmButtons[i].label;
|
let label = dialogContent.confirmButtons[i].label;
|
||||||
buttons.push({ action: Lang.bind(this, function() {
|
buttons.push({ action: Lang.bind(this, function() {
|
||||||
this._confirm(signal);
|
this.close(true);
|
||||||
|
let signalId = this.connect('closed',
|
||||||
|
Lang.bind(this, function() {
|
||||||
|
this.disconnect(signalId);
|
||||||
|
this._confirm(signal);
|
||||||
|
}));
|
||||||
}),
|
}),
|
||||||
label: label });
|
label: label });
|
||||||
}
|
}
|
||||||
@ -387,9 +392,11 @@ const EndSessionDialog = new Lang.Class({
|
|||||||
this.setButtons(buttons);
|
this.setButtons(buttons);
|
||||||
},
|
},
|
||||||
|
|
||||||
close: function() {
|
close: function(skipSignal) {
|
||||||
this.parent();
|
this.parent();
|
||||||
this._dbusImpl.emit_signal('Closed', null);
|
|
||||||
|
if (!skipSignal)
|
||||||
|
this._dbusImpl.emit_signal('Closed', null);
|
||||||
},
|
},
|
||||||
|
|
||||||
cancel: function() {
|
cancel: function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user