polkitAgent: Ensure cleanup if dialog wasn't shown
It is possible for an initiated session to complete without a request if polkit can authenticate the action without user input. We fail to clean up after ourselves in that case, as the cleanup is done after the dialog is closed. The dialog can still be shown when the code that hides existing dialogs while the screen is locked shows it on unlock. But as the session was closed, the dialog is now defunct and cannot be dismissed by the user. Fix this by running the cleanup on close() when the dialog wasn't shown. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3701 Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1662>
This commit is contained in:
parent
9fcbf3d0f9
commit
21faae480e
@ -380,6 +380,13 @@ var AuthenticationDialog = GObject.registerClass({
|
||||
}
|
||||
}
|
||||
|
||||
close(timestamp) {
|
||||
// Ensure cleanup if the dialog was never shown
|
||||
if (this.state === ModalDialog.State.CLOSED)
|
||||
this._onDialogClosed();
|
||||
super.close(timestamp);
|
||||
}
|
||||
|
||||
cancel() {
|
||||
this.close(global.get_current_time());
|
||||
this._emitDone(true);
|
||||
|
Loading…
Reference in New Issue
Block a user