From 45dd4808e26dabd03c25c126e97b22a20b4bcfa5 Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Tue, 2 Jun 2026 12:07:45 +0200 Subject: [PATCH 1/5] Use Object.keys(this._sections) instead of this._sections.keys() --- js/gdm/authMenuButton.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/gdm/authMenuButton.js b/js/gdm/authMenuButton.js index 5aaa45fd3..e2c516585 100644 --- a/js/gdm/authMenuButton.js +++ b/js/gdm/authMenuButton.js @@ -252,7 +252,7 @@ export class AuthMenuButton extends St.Button { this._items.delete(itemKey); }); - this._sections.keys().forEach(sectionName => { + Object.keys(this._sections).forEach(sectionName => { const itemsInSection = this._findItems({sectionName}); if (itemsInSection.length === 0) { const section = this._sections.get(sectionName); -- 2.55.0 From 2f4e4d9bff76e6b4db951890b82282cc7a01921a Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Tue, 2 Jun 2026 12:52:09 +0200 Subject: [PATCH 2/5] Don't use _once timeout variants --- js/gdm/authServices.js | 7 +++++-- js/gdm/authServicesLegacy.js | 3 ++- js/gdm/authServicesSSSDSwitchable.js | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/js/gdm/authServices.js b/js/gdm/authServices.js index d0f7659a5..e13d4106e 100644 --- a/js/gdm/authServices.js +++ b/js/gdm/authServices.js @@ -283,8 +283,11 @@ export class AuthServices extends GObject.Object { _waitPendingMessages() { const cancellable = this._cancellable; - const timeoutId = GLib.timeout_add_seconds_once(GLib.PRIORITY_DEFAULT, 10, - () => cancellable.cancel()); + const timeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 10, + () => { + cancellable.cancel(); + return GLib.SOURCE_REMOVE; + }); const {promise, resolve, reject} = Promise.withResolvers(); const task = Gio.Task.new(this, cancellable, () => { diff --git a/js/gdm/authServicesLegacy.js b/js/gdm/authServicesLegacy.js index 77f9cece6..0e5c525de 100644 --- a/js/gdm/authServicesLegacy.js +++ b/js/gdm/authServicesLegacy.js @@ -132,12 +132,13 @@ export class AuthServicesLegacy extends AuthServices { this._fingerprintReadyTimeoutId !== 0) return; - this._fingerprintReadyTimeoutId = GLib.timeout_add_once( + this._fingerprintReadyTimeoutId = GLib.timeout_add( GLib.PRIORITY_DEFAULT, FINGERPRINT_READY_TIMEOUT_MS, () => { this._fingerprintReadyTimeoutId = 0; this._setFingerprintReady(true); + return GLib.SOURCE_REMOVE; }); } diff --git a/js/gdm/authServicesSSSDSwitchable.js b/js/gdm/authServicesSSSDSwitchable.js index cf6a4e1fb..0271d98f2 100644 --- a/js/gdm/authServicesSSSDSwitchable.js +++ b/js/gdm/authServicesSSSDSwitchable.js @@ -287,7 +287,7 @@ export class AuthServicesSSSDSwitchable extends AuthServices { if (!timeout) return; - this._webLoginTimeoutId = GLib.timeout_add_seconds_once(GLib.PRIORITY_DEFAULT, + this._webLoginTimeoutId = GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, timeout, () => { if (this._selectedMechanism?.role !== Role.WEB_LOGIN) webLoginMechanism.needsRefresh = true; @@ -295,6 +295,7 @@ export class AuthServicesSSSDSwitchable extends AuthServices { this.emit('reset', {softReset: true}); this._webLoginTimeoutId = 0; + return GLib.SOURCE_REMOVE; }); } -- 2.55.0 From 398fd1ad475e2092977cb210e12d3403bc0fdbaa Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Tue, 9 Jun 2026 09:57:09 +0200 Subject: [PATCH 3/5] gdm: Use alternative to Promise.withResolvers() It doesn't exist in this version --- js/gdm/authServices.js | 6 +++++- js/gdm/userVerifier.js | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/js/gdm/authServices.js b/js/gdm/authServices.js index e13d4106e..e5cf21c96 100644 --- a/js/gdm/authServices.js +++ b/js/gdm/authServices.js @@ -289,7 +289,11 @@ export class AuthServices extends GObject.Object { return GLib.SOURCE_REMOVE; }); - const {promise, resolve, reject} = Promise.withResolvers(); + let resolve, reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); const task = Gio.Task.new(this, cancellable, () => { try { const res = task.propagate_boolean(); diff --git a/js/gdm/userVerifier.js b/js/gdm/userVerifier.js index 02decbf86..27777c6f1 100644 --- a/js/gdm/userVerifier.js +++ b/js/gdm/userVerifier.js @@ -223,7 +223,11 @@ export class ShellUserVerifier extends Signals.EventEmitter { return; const message = this.currentMessage; - const {promise, resolve} = Promise.withResolvers(); + let resolve, reject; + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }); this._showMessageResolver = resolve; this.emit('show-message', { -- 2.55.0 From dda52fc6a0e12af8dc3b6eca5f853923c311d837 Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Thu, 6 Aug 2026 23:58:46 +0200 Subject: [PATCH 4/5] gdm: Use old ButtonMask enum In this version it still used as ONE, TWO and THREE --- js/gdm/authList.js | 2 +- js/gdm/authMenuButton.js | 2 +- js/gdm/authPrompt.js | 2 +- js/gdm/webLogin.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/js/gdm/authList.js b/js/gdm/authList.js index 81c204e7f..8e035da91 100644 --- a/js/gdm/authList.js +++ b/js/gdm/authList.js @@ -70,7 +70,7 @@ class ItemIcon extends St.Button { constructor(iconName, iconTitle, iconSubtitle) { super({ style_class: 'login-dialog-item-icon', - button_mask: St.ButtonMask.PRIMARY | St.ButtonMask.SECONDARY, + button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, iconName, }); diff --git a/js/gdm/authMenuButton.js b/js/gdm/authMenuButton.js index e2c516585..ca9a0b9d1 100644 --- a/js/gdm/authMenuButton.js +++ b/js/gdm/authMenuButton.js @@ -149,7 +149,7 @@ export class AuthMenuButton extends St.Button { style_class: 'login-dialog-button login-dialog-auth-menu-button', can_focus: true, accessible_role: Atk.Role.MENU, - button_mask: St.ButtonMask.PRIMARY | St.ButtonMask.SECONDARY, + button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, }); this.bind_property('reactive', this, 'can-focus', diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js index 007c1538c..7e69525f9 100644 --- a/js/gdm/authPrompt.js +++ b/js/gdm/authPrompt.js @@ -291,7 +291,7 @@ export const AuthPrompt = GObject.registerClass({ this._authButton = new St.Button({ style_class: 'login-button', - button_mask: St.ButtonMask.PRIMARY | St.ButtonMask.SECONDARY, + button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, can_focus: true, x_align: Clutter.ActorAlign.CENTER, x_expand: true, diff --git a/js/gdm/webLogin.js b/js/gdm/webLogin.js index 3b6496296..34c371b8d 100644 --- a/js/gdm/webLogin.js +++ b/js/gdm/webLogin.js @@ -200,7 +200,7 @@ export class WebLoginDialog extends St.Widget { style_class: 'web-login-prompt-button', can_focus: true, accessible_name: b.label, - button_mask: St.ButtonMask.PRIMARY | St.ButtonMask.SECONDARY, + button_mask: St.ButtonMask.ONE | St.ButtonMask.THREE, child: new St.Label({ text: b.label, style_class: 'login-button-label', -- 2.55.0 From 5e3b6d53a6e34e27e6c38d517fe51cfe52b2b96e Mon Sep 17 00:00:00 2001 From: Joan Torres Lopez Date: Fri, 7 Aug 2026 11:42:37 +0200 Subject: [PATCH 5/5] style: Fix color styles to adapt when on light-mode (classic-mode) --- data/theme/gnome-shell-sass/widgets/_login-lock.scss | 8 ++++---- data/theme/gnome-shell-sass/widgets/_qr-code.scss | 1 + 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/data/theme/gnome-shell-sass/widgets/_login-lock.scss b/data/theme/gnome-shell-sass/widgets/_login-lock.scss index 04f24a789..fbcb4d20f 100644 --- a/data/theme/gnome-shell-sass/widgets/_login-lock.scss +++ b/data/theme/gnome-shell-sass/widgets/_login-lock.scss @@ -92,12 +92,12 @@ $_gdm_dialog_width: 25em; &-label { @include fontsize($base_font_size - 1); font-weight: bold; - color: $_gdm_fg; + color: $fg_color; } } .login-dialog-auth-menu-item-icon { - color: $_gdm_fg; + color: $fg_color; icon-size: $scalable_icon_size; margin-right: $base_margin * 2; } @@ -106,13 +106,13 @@ $_gdm_dialog_width: 25em; spacing: $base_padding * .5; &-name { - color: $_gdm_fg; + color: $fg_color; @include fontsize($base_font_size); font-weight: bold; } &-description { - color: $_gdm_fg; + color: $fg_color; @include fontsize($base_font_size - 1); } } diff --git a/data/theme/gnome-shell-sass/widgets/_qr-code.scss b/data/theme/gnome-shell-sass/widgets/_qr-code.scss index da04425bd..98ecf7b0f 100644 --- a/data/theme/gnome-shell-sass/widgets/_qr-code.scss +++ b/data/theme/gnome-shell-sass/widgets/_qr-code.scss @@ -6,6 +6,7 @@ $qrcode_bg_color: mix($fg_color, $bg_color, 8%); background-color: $qrcode_bg_color; border-color: $qrcode_bg_color; + color: $fg_color; } @else { background-color: $system_fg_color; border-color: $system_fg_color; -- 2.55.0