45add8a213
Resolves: #2174753
93 lines
3.3 KiB
Diff
93 lines
3.3 KiB
Diff
From 5b1260864b3a1a28d778a8610b4eb13c0bd52c99 Mon Sep 17 00:00:00 2001
|
|
From: Ray Strode <rstrode@redhat.com>
|
|
Date: Sun, 5 Mar 2023 20:00:42 -0500
|
|
Subject: [PATCH] endSessionDialog: Don't emit 'closed' until handler is
|
|
connected
|
|
|
|
Prior to commit 7bd98f3f5fb7e0d1220646b8a4ee7073534a8e8f animation
|
|
onComplete handlers always occured at least after one main loop
|
|
iteration.
|
|
|
|
Now, if animations are disabled, they can get invoked immediately.
|
|
|
|
That breaks the endSessionDialog button handler, which calls
|
|
close before setting up the "closed" signal handler.
|
|
|
|
This commit fixes the handler to get set up first.
|
|
---
|
|
js/ui/endSessionDialog.js | 2 +-
|
|
subprojects/gvc | 2 +-
|
|
2 files changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js
|
|
index ca24d0698..66fc2e6f9 100644
|
|
--- a/js/ui/endSessionDialog.js
|
|
+++ b/js/ui/endSessionDialog.js
|
|
@@ -420,65 +420,65 @@ class EndSessionDialog extends ModalDialog.ModalDialog {
|
|
return Clutter.EVENT_PROPAGATE;
|
|
|
|
let key = event.get_key_symbol();
|
|
if (key !== Clutter.KEY_Alt_L && key !== Clutter.KEY_Alt_R)
|
|
return Clutter.EVENT_PROPAGATE;
|
|
|
|
if (type === Clutter.EventType.KEY_PRESS)
|
|
altEnabled = true;
|
|
|
|
this._rebootButton.visible = !altEnabled;
|
|
this._rebootButtonAlt.visible = altEnabled;
|
|
|
|
return Clutter.EVENT_PROPAGATE;
|
|
}
|
|
|
|
_updateButtons() {
|
|
this.clearButtons();
|
|
|
|
this.addButton({
|
|
action: this.cancel.bind(this),
|
|
label: _('Cancel'),
|
|
key: Clutter.KEY_Escape,
|
|
});
|
|
|
|
let dialogContent = DialogContent[this._type];
|
|
for (let i = 0; i < dialogContent.confirmButtons.length; i++) {
|
|
let signal = dialogContent.confirmButtons[i].signal;
|
|
let label = dialogContent.confirmButtons[i].label;
|
|
let button = this.addButton({
|
|
action: () => {
|
|
- this.close(true);
|
|
let signalId = this.connect('closed', () => {
|
|
this.disconnect(signalId);
|
|
this._confirm(signal);
|
|
});
|
|
+ this.close(true);
|
|
},
|
|
label,
|
|
});
|
|
|
|
// Add Alt "Boot Options" option to the Reboot button
|
|
if (this._canRebootToBootLoaderMenu && signal === 'ConfirmedReboot') {
|
|
this._rebootButton = button;
|
|
this._rebootButtonAlt = this.addButton({
|
|
action: () => {
|
|
this.close(true);
|
|
let signalId = this.connect('closed', () => {
|
|
this.disconnect(signalId);
|
|
this._confirmRebootToBootLoaderMenu();
|
|
});
|
|
},
|
|
label: C_('button', 'Boot Options'),
|
|
});
|
|
this._rebootButtonAlt.visible = false;
|
|
this._capturedEventId = this.connect('captured-event',
|
|
this._onCapturedEvent.bind(this));
|
|
}
|
|
}
|
|
}
|
|
|
|
_stopAltCapture() {
|
|
if (this._capturedEventId > 0) {
|
|
global.stage.disconnect(this._capturedEventId);
|
|
this._capturedEventId = 0;
|
|
}
|
|
this._rebootButton = null;
|