Update passwordless GDM backport patch series

Add required pre-changes and update post-changes.
Also, update generated style.

Resolves: https://redhat.atlassian.net/browse/RHEL-236554
This commit is contained in:
Joan Torres Lopez 2026-08-11 14:02:46 +02:00
parent 1cdc75eb5a
commit 71ee7c3aae
No known key found for this signature in database
5 changed files with 11185 additions and 3268 deletions

File diff suppressed because it is too large Load Diff

View File

@ -3,12 +3,12 @@ From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@redhat.com>
Date: Tue, 8 Feb 2022 14:18:04 -0500
---
data/theme/gnome-shell-high-contrast.css | 268 ++++++++++++++++++++++-
data/theme/gnome-shell.css | 268 ++++++++++++++++++++++-
2 files changed, 524 insertions(+), 12 deletions(-)
data/theme/gnome-shell-high-contrast.css | 279 ++++++++++++++++++++++-
data/theme/gnome-shell.css | 279 ++++++++++++++++++++++-
2 files changed, 544 insertions(+), 14 deletions(-)
diff --git a/data/theme/gnome-shell-high-contrast.css b/data/theme/gnome-shell-high-contrast.css
index b73f407..585d6c4 100644
index b73f407..5444be1 100644
--- a/data/theme/gnome-shell-high-contrast.css
+++ b/data/theme/gnome-shell-high-contrast.css
@@ -173,7 +173,7 @@ StEntry {
@ -52,21 +52,7 @@ index b73f407..585d6c4 100644
box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.15); }
#panel .panel-status-indicators-box,
#panel .panel-status-menu-box {
@@ -1943,6 +1946,13 @@ StScrollBar {
border-radius: 8px;
padding: 6px; }
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #eeeeec;
+ border-color: #eeeeec;
+ color: #282828; }
+
/* Login Dialog */
.login-dialog-banner-view {
padding-top: 24px;
@@ -2028,11 +2038,15 @@ StScrollBar {
@@ -2028,11 +2031,15 @@ StScrollBar {
border-color: #184472;
background-color: #184472;
color: rgba(255, 255, 255, 0.7); }
@ -82,7 +68,7 @@ index b73f407..585d6c4 100644
.unlock-dialog .login-dialog-session-list-button {
padding: 0;
border-radius: 99px;
@@ -2040,18 +2054,51 @@ StScrollBar {
@@ -2040,18 +2047,59 @@ StScrollBar {
height: 2.18em;
border-color: #202020;
background-color: #202020; }
@ -119,13 +105,21 @@ index b73f407..585d6c4 100644
+ margin: 0.5em 20px; }
+ .login-dialog .login-dialog-prompt-entry,
+ .unlock-dialog .login-dialog-prompt-entry {
+ border-radius: 12px;
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-default-button-well,
+ .unlock-dialog .login-dialog-default-button-well {
+ margin-right: 0.4em; }
+ border-radius: 12px; }
+ .login-dialog .login-dialog-prompt-entry :ltr,
+ .unlock-dialog .login-dialog-prompt-entry :ltr {
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-prompt-entry :rtl,
+ .unlock-dialog .login-dialog-prompt-entry :rtl {
+ padding-left: 2.5em; }
+ .login-dialog .login-dialog-default-button-well :ltr,
+ .unlock-dialog .login-dialog-default-button-well :ltr {
+ margin-right: 0.5em; }
+ .login-dialog .login-dialog-default-button-well :rtl,
+ .unlock-dialog .login-dialog-default-button-well :rtl {
+ margin-left: 0.5em; }
+
+.login-dialog-auth-menu-button-indicator-description {
+.login-dialog-spinner {
+ color: #eeeeec; }
+
+.login-dialog-bottom-button-group {
@ -134,7 +128,7 @@ index b73f407..585d6c4 100644
.login-dialog-logo-bin {
padding: 24px 0px; }
@@ -2066,6 +2113,10 @@ StScrollBar {
@@ -2066,6 +2114,10 @@ StScrollBar {
.login-dialog-message {
text-align: center; }
@ -145,7 +139,7 @@ index b73f407..585d6c4 100644
.login-dialog-user-selection-box {
padding: 100px 0px; }
@@ -2080,6 +2131,140 @@ StScrollBar {
@@ -2080,6 +2132,143 @@ StScrollBar {
color: #a6a69b;
padding-top: 1em; }
@ -159,46 +153,45 @@ index b73f407..585d6c4 100644
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-section-label {
+ font-size: 10pt;
+ font-weight: bold;
+ color: #eeeeec; }
+ color: #fff; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-icon {
+ color: #eeeeec;
+ color: #fff;
+ icon-size: 1.09em;
+ margin-right: 8px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box {
+ spacing: 3px; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-name {
+ color: #eeeeec;
+ color: #fff;
+ font-size: 11pt;
+ font-weight: bold; }
+ .login-dialog-auth-menu-button-popup .login-dialog-auth-menu-item-box-description {
+ color: #eeeeec;
+ color: #fff;
+ font-size: 10pt; }
+
+.login-dialog-auth-menu-button-indicator {
+ background-color: transparent !important;
+ border-width: 0;
+ margin-bottom: 32px;
+ margin-left: 32px; }
+ margin: 32px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons {
+ spacing: 18px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons .login-dialog-auth-menu-button-indicator-icon {
+ icon-size: 2em; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-description {
+ font-size: 11pt;
+ margin-left: 12px;
+ min-width: 20em; }
+ font-weight: normal;
+ margin-left: 12px; }
+
+.login-dialog-auth-menu-button-indicator-description {
+ color: #eeeeec; }
+
+.login-dialog-button-box {
+ height: 4em; }
+
+.login-dialog-auth-list-view {
+ -st-vfade-offset: 1em;
+ -st-vfade-offset: 3em;
+ max-height: 13em; }
+
+.login-dialog-auth-list {
+ spacing: 9px;
+ width: 23em;
+ margin-left: 20px; }
+ spacing: 9px; }
+
+.login-dialog .login-dialog-auth-list-title,
+.login-dialog .login-dialog-auth-list-item {
@ -211,16 +204,18 @@ index b73f407..585d6c4 100644
+ color: #ffffff; }
+
+.login-dialog .login-dialog-auth-list-title {
+ background-color: rgba(238, 238, 236, 0.03) !important;
+ background-color: rgba(238, 238, 236, 0.02) !important;
+ color: #eeeeec !important;
+ padding: 6px;
+ margin: 0.5em 20px; }
+
+.login-dialog .login-dialog-auth-list-item {
+ min-height: 3em;
+ padding: 9px;
+ margin-bottom: 4px;
+ margin-right: 4px;
+ background-color: rgba(238, 238, 236, 0.06); }
+ .login-dialog .login-dialog-auth-list-item.compact {
+ min-height: 1.3em; }
+
+.unlock-dialog .login-dialog-auth-list-item {
+ border: none;
@ -229,7 +224,8 @@ index b73f407..585d6c4 100644
+ border-radius: 12px;
+ min-height: 3em;
+ padding: 9px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
+ .unlock-dialog .login-dialog-auth-list-item:hover, .unlock-dialog .login-dialog-auth-list-item:focus, .unlock-dialog .login-dialog-auth-list-item:selected {
+ background-color: rgba(238, 238, 236, 0.16); }
+ .unlock-dialog .login-dialog-auth-list-item:active {
@ -239,7 +235,8 @@ index b73f407..585d6c4 100644
+ background-color: transparent !important;
+ border: none;
+ color: #eeeeec !important;
+ padding: 6px; }
+ padding: 0;
+ margin: 0; }
+
+.login-dialog-auth-list-title-label {
+ font-size: 13pt;
@ -251,7 +248,7 @@ index b73f407..585d6c4 100644
+.login-dialog-auth-list-item-subtitle {
+ font-size: 11pt;
+ text-align: center;
+ padding: 1.8px 0; }
+ padding: 1.8px 2em; }
+
+.login-dialog-auth-list-item-title {
+ color: #eeeeec;
@ -286,7 +283,16 @@ index b73f407..585d6c4 100644
.login-dialog-user-list-view {
-st-vfade-offset: 1em; }
@@ -2145,6 +2330,77 @@ StScrollBar {
@@ -2135,7 +2324,7 @@ StScrollBar {
padding-top: 24px;
padding-bottom: 12px;
spacing: 12px;
- width: 23em; }
+ width: 27.6em; }
.login-dialog-prompt-entry {
height: 1.5em; }
@@ -2145,6 +2334,75 @@ StScrollBar {
font-size: 12pt;
padding-top: 1em; }
@ -326,37 +332,35 @@ index b73f407..585d6c4 100644
+ padding-right: 27px;
+ spacing: 1.75em; }
+
+.web-login-button-label {
+.login-dialog .login-button,
+.login-dialog .web-login-prompt-button,
+.unlock-dialog .login-button,
+.unlock-dialog .web-login-prompt-button {
+ font-size: 13pt;
+ color: #eeeeec;
+ min-width: 12em;
+ text-align: center;
+ font-weight: bold;
+ padding-bottom: 0.1em; }
+
+.login-dialog .web-login-intro-button,
+.login-dialog .web-login-prompt-button,
+.unlock-dialog .web-login-intro-button,
+.unlock-dialog .web-login-prompt-button {
+ border-radius: 32px !important;
+ padding: 9px 18px;
+ border-radius: 32px;
+ background-color: rgba(238, 238, 236, 0.06); }
+
+.login-dialog .web-login-intro-button,
+.unlock-dialog .web-login-intro-button {
+ width: 10em; }
+.login-dialog .login-button,
+.unlock-dialog .login-button {
+ padding: 9px 18px;
+ margin: 0.2em 20px;
+ width: 8em; }
+
+.login-dialog .web-login-prompt-button,
+.unlock-dialog .web-login-prompt-button {
+ width: 7em;
+ margin: 24px 8px; }
+ padding: 9px 18px;
+ margin: 24px 8px;
+ width: 7em; }
+
+.login-dialog .web-login-intro-button:hover, .login-dialog .web-login-intro-button:focus,
+.login-dialog .login-button:hover, .login-dialog .login-button:focus,
+.login-dialog .web-login-prompt-button:hover,
+.login-dialog .web-login-prompt-button:focus {
+ background-color: #215d9c; }
+
+.unlock-dialog .web-login-intro-button:hover, .unlock-dialog .web-login-intro-button:focus,
+.unlock-dialog .login-button:hover, .unlock-dialog .login-button:focus,
+.unlock-dialog .web-login-prompt-button:hover,
+.unlock-dialog .web-login-prompt-button:focus {
+ background-color: rgba(238, 238, 236, 0.16); }
@ -364,8 +368,22 @@ index b73f407..585d6c4 100644
/* Screen Shield */
.unlock-dialog-clock {
color: white;
@@ -2210,6 +2468,13 @@ StScrollBar {
#unlockDialogNotifications StButton#vhandle:active, #unlockDialogNotifications StButton#hhandle:active {
background-color: rgba(33, 93, 156, 0.5); }
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #eeeeec;
+ border-color: #eeeeec;
+ color: #282828; }
+
stage {
-st-icon-style: symbolic; }
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index f93819b..ff0c587 100644
index f93819b..afe0767 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -173,7 +173,7 @@ StEntry {
@ -409,21 +427,7 @@ index f93819b..ff0c587 100644
box-shadow: inset 0 0 0 100px rgba(255, 255, 255, 0.15); }
#panel .panel-status-indicators-box,
#panel .panel-status-menu-box {
@@ -1943,6 +1946,13 @@ StScrollBar {
border-radius: 8px;
padding: 6px; }
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #eeeeec;
+ border-color: #eeeeec;
+ color: #282828; }
+
/* Login Dialog */
.login-dialog-banner-view {
padding-top: 24px;
@@ -2028,11 +2038,15 @@ StScrollBar {
@@ -2028,11 +2031,15 @@ StScrollBar {
border-color: #15539e;
background-color: #15539e;
color: rgba(255, 255, 255, 0.7); }
@ -439,7 +443,7 @@ index f93819b..ff0c587 100644
.unlock-dialog .login-dialog-session-list-button {
padding: 0;
border-radius: 99px;
@@ -2040,18 +2054,51 @@ StScrollBar {
@@ -2040,18 +2047,59 @@ StScrollBar {
height: 2.18em;
border-color: #202020;
background-color: #202020; }
@ -476,13 +480,21 @@ index f93819b..ff0c587 100644
+ margin: 0.5em 20px; }
+ .login-dialog .login-dialog-prompt-entry,
+ .unlock-dialog .login-dialog-prompt-entry {
+ border-radius: 12px;
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-default-button-well,
+ .unlock-dialog .login-dialog-default-button-well {
+ margin-right: 0.4em; }
+ border-radius: 12px; }
+ .login-dialog .login-dialog-prompt-entry :ltr,
+ .unlock-dialog .login-dialog-prompt-entry :ltr {
+ padding-right: 2.5em; }
+ .login-dialog .login-dialog-prompt-entry :rtl,
+ .unlock-dialog .login-dialog-prompt-entry :rtl {
+ padding-left: 2.5em; }
+ .login-dialog .login-dialog-default-button-well :ltr,
+ .unlock-dialog .login-dialog-default-button-well :ltr {
+ margin-right: 0.5em; }
+ .login-dialog .login-dialog-default-button-well :rtl,
+ .unlock-dialog .login-dialog-default-button-well :rtl {
+ margin-left: 0.5em; }
+
+.login-dialog-auth-menu-button-indicator-description {
+.login-dialog-spinner {
+ color: #eeeeec; }
+
+.login-dialog-bottom-button-group {
@ -491,7 +503,7 @@ index f93819b..ff0c587 100644
.login-dialog-logo-bin {
padding: 24px 0px; }
@@ -2066,6 +2113,10 @@ StScrollBar {
@@ -2066,6 +2114,10 @@ StScrollBar {
.login-dialog-message {
text-align: center; }
@ -502,7 +514,7 @@ index f93819b..ff0c587 100644
.login-dialog-user-selection-box {
padding: 100px 0px; }
@@ -2080,6 +2131,140 @@ StScrollBar {
@@ -2080,6 +2132,143 @@ StScrollBar {
color: #a6a69b;
padding-top: 1em; }
@ -533,29 +545,28 @@ index f93819b..ff0c587 100644
+
+.login-dialog-auth-menu-button-indicator {
+ background-color: transparent !important;
+ border-width: 0;
+ margin-bottom: 32px;
+ margin-left: 32px; }
+ margin: 32px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons {
+ spacing: 18px; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-icons .login-dialog-auth-menu-button-indicator-icon {
+ icon-size: 2em; }
+ .login-dialog-auth-menu-button-indicator .login-dialog-auth-menu-button-indicator-description {
+ font-size: 11pt;
+ margin-left: 12px;
+ min-width: 20em; }
+ font-weight: normal;
+ margin-left: 12px; }
+
+.login-dialog-auth-menu-button-indicator-description {
+ color: #eeeeec; }
+
+.login-dialog-button-box {
+ height: 4em; }
+
+.login-dialog-auth-list-view {
+ -st-vfade-offset: 1em;
+ -st-vfade-offset: 3em;
+ max-height: 13em; }
+
+.login-dialog-auth-list {
+ spacing: 9px;
+ width: 23em;
+ margin-left: 20px; }
+ spacing: 9px; }
+
+.login-dialog .login-dialog-auth-list-title,
+.login-dialog .login-dialog-auth-list-item {
@ -568,16 +579,18 @@ index f93819b..ff0c587 100644
+ color: #fff; }
+
+.login-dialog .login-dialog-auth-list-title {
+ background-color: rgba(238, 238, 236, 0.03) !important;
+ background-color: rgba(238, 238, 236, 0.02) !important;
+ color: #eeeeec !important;
+ padding: 6px;
+ margin: 0.5em 20px; }
+
+.login-dialog .login-dialog-auth-list-item {
+ min-height: 3em;
+ padding: 9px;
+ margin-bottom: 4px;
+ margin-right: 4px;
+ background-color: rgba(238, 238, 236, 0.06); }
+ .login-dialog .login-dialog-auth-list-item.compact {
+ min-height: 1.3em; }
+
+.unlock-dialog .login-dialog-auth-list-item {
+ border: none;
@ -586,7 +599,8 @@ index f93819b..ff0c587 100644
+ border-radius: 12px;
+ min-height: 3em;
+ padding: 9px;
+ margin-bottom: 4px; }
+ margin-bottom: 4px;
+ margin-right: 4px; }
+ .unlock-dialog .login-dialog-auth-list-item:hover, .unlock-dialog .login-dialog-auth-list-item:focus, .unlock-dialog .login-dialog-auth-list-item:selected {
+ background-color: rgba(238, 238, 236, 0.16); }
+ .unlock-dialog .login-dialog-auth-list-item:active {
@ -596,7 +610,8 @@ index f93819b..ff0c587 100644
+ background-color: transparent !important;
+ border: none;
+ color: #eeeeec !important;
+ padding: 6px; }
+ padding: 0;
+ margin: 0; }
+
+.login-dialog-auth-list-title-label {
+ font-size: 13pt;
@ -608,7 +623,7 @@ index f93819b..ff0c587 100644
+.login-dialog-auth-list-item-subtitle {
+ font-size: 11pt;
+ text-align: center;
+ padding: 1.8px 0; }
+ padding: 1.8px 2em; }
+
+.login-dialog-auth-list-item-title {
+ color: #eeeeec;
@ -643,7 +658,16 @@ index f93819b..ff0c587 100644
.login-dialog-user-list-view {
-st-vfade-offset: 1em; }
@@ -2145,6 +2330,77 @@ StScrollBar {
@@ -2135,7 +2324,7 @@ StScrollBar {
padding-top: 24px;
padding-bottom: 12px;
spacing: 12px;
- width: 23em; }
+ width: 27.6em; }
.login-dialog-prompt-entry {
height: 1.5em; }
@@ -2145,6 +2334,75 @@ StScrollBar {
font-size: 12pt;
padding-top: 1em; }
@ -683,37 +707,35 @@ index f93819b..ff0c587 100644
+ padding-right: 27px;
+ spacing: 1.75em; }
+
+.web-login-button-label {
+.login-dialog .login-button,
+.login-dialog .web-login-prompt-button,
+.unlock-dialog .login-button,
+.unlock-dialog .web-login-prompt-button {
+ font-size: 13pt;
+ color: #eeeeec;
+ min-width: 12em;
+ text-align: center;
+ font-weight: bold;
+ padding-bottom: 0.1em; }
+
+.login-dialog .web-login-intro-button,
+.login-dialog .web-login-prompt-button,
+.unlock-dialog .web-login-intro-button,
+.unlock-dialog .web-login-prompt-button {
+ border-radius: 32px !important;
+ padding: 9px 18px;
+ border-radius: 32px;
+ background-color: rgba(238, 238, 236, 0.06); }
+
+.login-dialog .web-login-intro-button,
+.unlock-dialog .web-login-intro-button {
+ width: 10em; }
+.login-dialog .login-button,
+.unlock-dialog .login-button {
+ padding: 9px 18px;
+ margin: 0.2em 20px;
+ width: 8em; }
+
+.login-dialog .web-login-prompt-button,
+.unlock-dialog .web-login-prompt-button {
+ width: 7em;
+ margin: 24px 8px; }
+ padding: 9px 18px;
+ margin: 24px 8px;
+ width: 7em; }
+
+.login-dialog .web-login-intro-button:hover, .login-dialog .web-login-intro-button:focus,
+.login-dialog .login-button:hover, .login-dialog .login-button:focus,
+.login-dialog .web-login-prompt-button:hover,
+.login-dialog .web-login-prompt-button:focus {
+ background-color: #1b6acb; }
+
+.unlock-dialog .web-login-intro-button:hover, .unlock-dialog .web-login-intro-button:focus,
+.unlock-dialog .login-button:hover, .unlock-dialog .login-button:focus,
+.unlock-dialog .web-login-prompt-button:hover,
+.unlock-dialog .web-login-prompt-button:focus {
+ background-color: rgba(238, 238, 236, 0.16); }
@ -721,6 +743,17 @@ index f93819b..ff0c587 100644
/* Screen Shield */
.unlock-dialog-clock {
color: white;
@@ -2209,3 +2467,10 @@ StScrollBar {
background-color: rgba(53, 53, 53, 0.5); }
#unlockDialogNotifications StButton#vhandle:active, #unlockDialogNotifications StButton#hhandle:active {
background-color: rgba(27, 106, 203, 0.5); }
+
+.qr-code {
+ border-radius: 4px;
+ border-width: 1em;
+ background-color: #eeeeec;
+ border-color: #eeeeec;
+ color: #282828; }
--
2.51.0
2.55.0

View File

@ -8,7 +8,7 @@
Name: gnome-shell
Version: 40.10
Release: 36%{?dist}
Release: 37%{?dist}
Summary: Window management and application launching for GNOME
License: GPLv2+
@ -315,6 +315,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%endif
%changelog
* Tue Aug 11 2026 Joan Torres Lopez <joantolo@redhat.com> - 40.10-37
- Update passwordless GDM backport patch series
Add required pre-changes and update post-changes
Resolves: RHEL-236554
* Mon May 25 2026 Joan Torres Lopez <joantolo@redhat.com> - 40.10-36
- Update fix of registering session
Registering the display is needed too

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
From 38531053c836ca7ae91e5f20785a67e690422d01 Mon Sep 17 00:00:00 2001
From 707869667dc400850b5bc21bf27bb486e9ed9048 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Mon, 25 Aug 2025 14:25:49 +0200
Subject: [PATCH 1/6] gdm/authPrompt: Unset the entry reference on destruction
Subject: [PATCH 1/7] gdm/authPrompt: Unset the entry reference on destruction
We use the internal entry as the reference to the text entry that is
currently in use, but during destruction we do not unset it, thus the
@ -15,7 +15,7 @@ Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3850>
1 file changed, 1 insertion(+)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index 2b65eee8b9..e4950e56ce 100644
index 2b65eee8b..e4950e56c 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -133,6 +133,7 @@ var AuthPrompt = GObject.registerClass({
@ -27,13 +27,13 @@ index 2b65eee8b9..e4950e56ce 100644
vfunc_key_press_event(keyPressEvent) {
--
2.52.0
2.55.0
From 34ff1bdba494f66282cba3c8a955b48b041371cc Mon Sep 17 00:00:00 2001
From 0704d6d04d920fd65ff4be8b8cc5583de69a9219 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Mon, 25 Aug 2025 14:29:55 +0200
Subject: [PATCH 2/6] gdm/authPrompt: Clear the inactive entry too
Subject: [PATCH 2/7] gdm/authPrompt: Clear the inactive entry too
In multi-factor authentication cases we may end up clearing the current
entry, but we are potentially leaving a previously filled inactive entry
@ -47,7 +47,7 @@ Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3850>
1 file changed, 1 insertion(+)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index e4950e56ce..2d306d16b5 100644
index e4950e56c..2d306d16b 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -489,6 +489,7 @@ var AuthPrompt = GObject.registerClass({
@ -59,13 +59,13 @@ index e4950e56ce..2d306d16b5 100644
this._authList.clear();
this._authList.hide();
--
2.52.0
2.55.0
From 576c74f85fe316ef541a347bd51134ceb091658a Mon Sep 17 00:00:00 2001
From 71933c370e984a48e3f6da45c6b5cf9a345097c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Tue, 26 Aug 2025 16:40:07 +0200
Subject: [PATCH 3/6] gdm/authPrompt: Factorize the entry update code
Subject: [PATCH 3/7] gdm/authPrompt: Factorize the entry update code
Cleanup the code a bit to make future updates smaller
@ -75,7 +75,7 @@ Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3850>
1 file changed, 13 insertions(+), 4 deletions(-)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index 2d306d16b5..ed42409b12 100644
index 2d306d16b..ed42409b1 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -305,13 +305,22 @@ var AuthPrompt = GObject.registerClass({
@ -106,13 +106,13 @@ index 2d306d16b5..ed42409b12 100644
}
--
2.52.0
2.55.0
From 2b9dd08c26da92ed0b2e86356fb26a1b69d02f66 Mon Sep 17 00:00:00 2001
From 980a1972b71fcd2ab0435da88082f2421d1d46e3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Mon, 25 Aug 2025 14:35:57 +0200
Subject: [PATCH 4/6] gdm/authPrompt: Preserve the text when switching entry
Subject: [PATCH 4/7] gdm/authPrompt: Preserve the text when switching entry
visibility
The text visibility of an auth prompt entry may change dynamically at
@ -144,7 +144,7 @@ Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3850>
1 file changed, 3 insertions(+)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index ed42409b12..e4084ad22d 100644
index ed42409b1..e4084ad22 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -319,6 +319,9 @@ var AuthPrompt = GObject.registerClass({
@ -158,13 +158,13 @@ index ed42409b12..e4084ad22d 100644
this._capsLockWarningLabel.visible = secret;
--
2.52.0
2.55.0
From 1670d0e80215cd3c934dc1de79997753b9eafdf8 Mon Sep 17 00:00:00 2001
From ee671464acb9c5b86157c4d9730533379ee09843 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Fri, 22 Aug 2025 15:08:23 +0200
Subject: [PATCH 5/6] gdm/authPrompt: Fix key focus handling on choice list
Subject: [PATCH 5/7] gdm/authPrompt: Fix key focus handling on choice list
When a choice list widget is prompted in GDM we call updateSensitivity()
but this does not act on the currently visible authentication widget but
@ -186,7 +186,7 @@ Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3849>
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index e4084ad22d..f9205d41dd 100644
index e4084ad22..f9205d41d 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -524,13 +524,13 @@ var AuthPrompt = GObject.registerClass({
@ -237,13 +237,13 @@ index e4084ad22d..f9205d41dd 100644
}
--
2.52.0
2.55.0
From c82bbfa5eeb3e3e6455f9d168b0463183d8eaf0a Mon Sep 17 00:00:00 2001
From 568eddde54ef020166a9c553cc88655d1aff1568 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 8 Jul 2025 17:42:56 +0200
Subject: [PATCH 6/6] loginDialog: Move session/a11y buttons into a box
Subject: [PATCH 6/7] loginDialog: Move session/a11y buttons into a box
The intermediate container allows the theme to control the distance
from the edge and spacing between buttons, which is more accessible
@ -256,7 +256,7 @@ Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3794>
2 files changed, 21 insertions(+), 11 deletions(-)
diff --git a/data/theme/gnome-shell-sass/widgets/_login-dialog.scss b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss
index f68d5de996..307a751628 100644
index f68d5de99..307a75162 100644
--- a/data/theme/gnome-shell-sass/widgets/_login-dialog.scss
+++ b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss
@@ -89,6 +89,11 @@
@ -272,10 +272,10 @@ index f68d5de996..307a751628 100644
.login-dialog-banner { color: darken($osd_fg_color,10%); }
.login-dialog-button-box { width: 23em; spacing: 5px; }
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index fbced3e4ab..a218e59d78 100644
index 36ecfe444..8ed0a0d32 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -559,6 +559,11 @@ var LoginDialog = GObject.registerClass({
@@ -493,6 +493,11 @@ var LoginDialog = GObject.registerClass({
bannerBox.add_child(this._bannerLabel);
this._updateBanner();
@ -287,7 +287,7 @@ index fbced3e4ab..a218e59d78 100644
this._sessionMenuButton = new SessionMenuButton();
this._sessionMenuButton.connect('session-activated',
(list, sessionId) => {
@@ -566,7 +571,7 @@ var LoginDialog = GObject.registerClass({
@@ -500,7 +505,7 @@ var LoginDialog = GObject.registerClass({
});
this._sessionMenuButton.opacity = 0;
this._sessionMenuButton.show();
@ -296,7 +296,7 @@ index fbced3e4ab..a218e59d78 100644
this._logoBin = new St.Widget({ style_class: 'login-dialog-logo-bin',
x_align: Clutter.ActorAlign.CENTER,
@@ -625,17 +630,17 @@ var LoginDialog = GObject.registerClass({
@@ -559,17 +564,17 @@ var LoginDialog = GObject.registerClass({
return actorBox;
}
@ -319,7 +319,7 @@ index fbced3e4ab..a218e59d78 100644
actorBox.x2 = actorBox.x1 + natWidth;
actorBox.y2 = actorBox.y1 + natHeight;
@@ -698,9 +703,9 @@ var LoginDialog = GObject.registerClass({
@@ -632,9 +637,9 @@ var LoginDialog = GObject.registerClass({
logoHeight = logoAllocation.y2 - logoAllocation.y1;
}
@ -332,7 +332,7 @@ index fbced3e4ab..a218e59d78 100644
// Then figure out if we're overly constrained and need to
// try a different layout, or if we have what extra space we
@@ -801,8 +806,8 @@ var LoginDialog = GObject.registerClass({
@@ -735,8 +740,8 @@ var LoginDialog = GObject.registerClass({
if (logoAllocation)
this._logoBin.allocate(logoAllocation);
@ -344,5 +344,91 @@ index fbced3e4ab..a218e59d78 100644
_ensureUserListLoaded() {
--
2.52.0
2.55.0
From 9110b24bf3d48ed73077c8df21289ab38bad55f0 Mon Sep 17 00:00:00 2001
From: Alessandro Bono <alessandro.bono369@gmail.com>
Date: Fri, 5 Aug 2022 12:56:04 +0200
Subject: [PATCH 7/7] authPrompt: Don't propagate serviceName to setMessage
There isn't always a serviceName when we set a message. Furthermore we
are passing the serviceName only to decide if we want to wiggle or not.
Pass the wiggle parameters instead. If they are missing, we don't want
to wiggle.
This fixes the following error:
JS ERROR: Exception in callback for signal: login-format-changed: Error: Wrong type number; string expected
setMessage@resource:///org/gnome/shell/gdm/authPrompt.js:542:13
_showRealmLoginHint@resource:///org/gnome/shell/gdm/loginDialog.js:931:26
_emit@resource:///org/gnome/gjs/modules/core/_signals.js:114:47
_updateLoginFormat@resource:///org/gnome/shell/gdm/realmd.js:85:18
_reloadRealm@resource:///org/gnome/shell/gdm/realmd.js:57:14
_onRealmLoaded@resource:///org/gnome/shell/gdm/realmd.js:64:14
_makeProxyWrapper/</<@resource:///org/gnome/gjs/modules/core/overrides/Gio.js:245:34
Fallout from 526f0711f1a7b7bd8e4913845b5a559f2c93be5c.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5547
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2404>
---
js/gdm/authPrompt.js | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/js/gdm/authPrompt.js b/js/gdm/authPrompt.js
index f9205d41d..11f34fc2c 100644
--- a/js/gdm/authPrompt.js
+++ b/js/gdm/authPrompt.js
@@ -392,7 +392,20 @@ var AuthPrompt = GObject.registerClass({
}
_onShowMessage(_userVerifier, serviceName, message, type) {
- this.setMessage(serviceName, message, type);
+ let wiggleParameters = {duration: 0};
+
+ if (type === GdmUtil.MessageType.ERROR &&
+ this._userVerifier.serviceIsFingerprint(serviceName)) {
+ // TODO: Use Await for wiggle to be over before unfreezing the user verifier queue
+ wiggleParameters = {
+ duration: 65,
+ wiggleCount: 3,
+ };
+ this._userVerifier.increaseCurrentMessageTimeout(
+ wiggleParameters.duration * (wiggleParameters.wiggleCount + 2));
+ }
+
+ this.setMessage(message, type, wiggleParameters);
this.emit('prompted');
}
@@ -572,7 +585,7 @@ var AuthPrompt = GObject.registerClass({
});
}
- setMessage(serviceName, message, type) {
+ setMessage(message, type, wiggleParameters = {duration: 0}) {
if (type == GdmUtil.MessageType.ERROR)
this._message.add_style_class_name('login-dialog-message-warning');
else
@@ -592,17 +605,7 @@ var AuthPrompt = GObject.registerClass({
this._message.opacity = 0;
}
- if (type === GdmUtil.MessageType.ERROR &&
- this._userVerifier.serviceIsFingerprint(serviceName)) {
- // TODO: Use Await for wiggle to be over before unfreezing the user verifier queue
- const wiggleParameters = {
- duration: 65,
- wiggleCount: 3,
- };
- this._userVerifier.increaseCurrentMessageTimeout(
- wiggleParameters.duration * (wiggleParameters.wiggleCount + 2));
- Util.wiggle(this._message, wiggleParameters);
- }
+ Util.wiggle(this._message, wiggleParameters);
}
updateSensitivity(sensitive) {
--
2.55.0