From 2dc565e817c44a42407a9e7d7f4e5007a2ca13f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Tue, 14 May 2024 19:49:56 +0200 Subject: [PATCH 1/2] authPrompt: Use signal handler instead of vfunc The prompt itself may get destroyed when canceled, in which case it is no longer possible to chain up in the vfunc. This is usually not an issue as the prompt is only destroyed at the end of a transition, but it results in a warning if animations are disabled. --- js/gdm/authPrompt.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js index 3bfcd0d3db..f6106e761e 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js @@ -141,10 +141,10 @@ export const AuthPrompt = GObject.registerClass({ this._userVerifier = null; } - vfunc_key_press_event(event) { + on_key_press_event(event) { if (event.get_key_symbol() === Clutter.KEY_Escape) this.cancel(); - return super.vfunc_key_press_event(event); + return Clutter.EVENT_PROPAGATE; } _initInputRow() { -- 2.45.0 From 1ca1330d92049b7bb8f71ddef1363ba9536098c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 15 May 2024 01:55:40 +0200 Subject: [PATCH 2/2] authPrompt: Consume cancel key event The auth prompt currently propagates all key presses, even the Escape press that is used to cancel it. On the lock screen that means that the same event that cancels the prompt (and switches back to the clock) is *also* propagated to the handler that activates the prompt on key press. That handler doesn't do anything when the prompt is already visible, which is the case when the transition to the clock is animated. However when animations are disabled, canceling the prompt will result in a new prompt getting created immediately, and the login screen is stuck on the prompt. Fix this by not propagating key events that are used to cancel the prompt. --- js/gdm/authPrompt.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js index f6106e761e..254b4dbb88 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js @@ -142,8 +142,10 @@ export const AuthPrompt = GObject.registerClass({ } on_key_press_event(event) { - if (event.get_key_symbol() === Clutter.KEY_Escape) + if (event.get_key_symbol() === Clutter.KEY_Escape) { this.cancel(); + return Clutter.EVENT_STOP; + } return Clutter.EVENT_PROPAGATE; } -- 2.45.0