diff --git a/0001-Support-conflicting-session-dialog.patch b/0001-Support-conflicting-session-dialog.patch index a5fcbf7..f942064 100644 --- a/0001-Support-conflicting-session-dialog.patch +++ b/0001-Support-conflicting-session-dialog.patch @@ -79,9 +79,8 @@ there's already a conflicting session opened. Part-of: --- .../org.freedesktop.login1.Session.xml | 1 + - .../widgets/_login-dialog.scss | 20 ++++++ - js/gdm/loginDialog.js | 62 +++++++++++++++++++ - 3 files changed, 83 insertions(+) + js/gdm/loginDialog.js | 64 +++++++++++++++++++ + 2 files changed, 65 insertions(+) diff --git a/data/dbus-interfaces/org.freedesktop.login1.Session.xml b/data/dbus-interfaces/org.freedesktop.login1.Session.xml index 6fab81794..ecab4bbaa 100644 @@ -95,37 +94,6 @@ index 6fab81794..ecab4bbaa 100644 -diff --git a/data/theme/gnome-shell-sass/widgets/_login-dialog.scss b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss -index 1789beca9..baf45a9d8 100644 ---- a/data/theme/gnome-shell-sass/widgets/_login-dialog.scss -+++ b/data/theme/gnome-shell-sass/widgets/_login-dialog.scss -@@ -89,6 +89,26 @@ - } - } - -+.conflicting-session-dialog-content { -+ spacing: 20px; -+ -+ .conflicting-session-dialog-title { -+ text-align: center; -+ font-size: 18pt; -+ font-weight: 800; -+ margin-bottom: 5px; -+ } -+ -+ .conflicting-session-dialog-desc { -+ text-align: center; -+ } -+ -+ .conflicting-session-dialog-desc-warning { -+ text-align: center; -+ color: $warning_color; -+ } -+} -+ - .login-dialog-logo-bin { padding: 24px 0px; } - .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 241721ff7..674ff24a5 100644 --- a/js/gdm/loginDialog.js @@ -138,7 +106,7 @@ index 241721ff7..674ff24a5 100644 const PopupMenu = imports.ui.popupMenu; const Realmd = imports.gdm.realmd; const UserWidget = imports.ui.userWidget; -@@ -400,6 +401,67 @@ var SessionMenuButton = GObject.registerClass({ +@@ -400,6 +401,69 @@ var SessionMenuButton = GObject.registerClass({ } }); @@ -157,26 +125,28 @@ index 241721ff7..674ff24a5 100644 + bannerText = _('Login is not possible because a session is already running for %s. To login, you must log out from the session or force stop it.').format(userName); + + let textLayout = new St.BoxLayout({ -+ style_class: 'conflicting-session-dialog-content', + vertical: true, + x_expand: true, ++ style: 'spacing: 20px;', + }); + + let title = new St.Label({ + text: _('Session Already Running'), -+ style_class: 'conflicting-session-dialog-title', -+ }); ++ style: 'text-align: center;' ++ + 'font-size: 18pt;' ++ + 'font-weight: 800;' ++ + 'margin-bottom: 5px;' }); + + let banner = new St.Label({ + text: bannerText, -+ style_class: 'conflicting-session-dialog-desc', ++ style: 'text-align: center', + }); + banner.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; + banner.clutter_text.line_wrap = true; + + let warningBanner = new St.Label({ + text: _('Force stopping will quit any running apps and processes, and could result in data loss'), -+ style_class: 'conflicting-session-dialog-desc-warning', ++ style: 'text-align: center; color: #f57900;', + }); + warningBanner.clutter_text.ellipsize = Pango.EllipsizeMode.NONE; + warningBanner.clutter_text.line_wrap = true; @@ -227,14 +197,25 @@ closed on its side, the new session will start. Part-of: --- - js/gdm/loginDialog.js | 73 +++++++++++++++++++++++++++++++++++++++++-- - 1 file changed, 71 insertions(+), 2 deletions(-) + js/gdm/loginDialog.js | 77 ++++++++++++++++++++++++++++++++++++++++--- + 1 file changed, 73 insertions(+), 4 deletions(-) diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js index 674ff24a5..25b86880d 100644 --- a/js/gdm/loginDialog.js +++ b/js/gdm/loginDialog.js -@@ -1044,6 +1044,28 @@ var LoginDialog = GObject.registerClass({ +@@ -914,8 +914,8 @@ var LoginDialog = GObject.registerClass({ + + this._defaultSessionChangedId = this._greeter.connect('default-session-name-changed', + this._onDefaultSessionChanged.bind(this)); +- this._sessionOpenedId = this._greeter.connect('session-opened', +- this._onSessionOpened.bind(this)); ++ this._sessionOpenedId = this._greeter.connect('session-opened-with-session-id', ++ this._onSessionOpenedWithSessionId.bind(this)); + this._timedLoginRequestedId = this._greeter.connect('timed-login-requested', + this._onTimedLoginRequested.bind(this)); + } +@@ -1053,6 +1053,28 @@ var LoginDialog = GObject.registerClass({ }); } @@ -263,7 +244,7 @@ index 674ff24a5..25b86880d 100644 _startSession(serviceName) { this._bindOpacity(); this.ease({ -@@ -1057,8 +1079,55 @@ var LoginDialog = GObject.registerClass({ +@@ -1066,8 +1088,55 @@ var LoginDialog = GObject.registerClass({ }); } @@ -303,7 +284,7 @@ index 674ff24a5..25b86880d 100644 + return null; + } + -+ async _onSessionOpened(client, serviceName, sessionId) { ++ async _onSessionOpenedWithSessionId(client, serviceName, sessionId) { + try { + if (sessionId) { + const conflictingSession = await this._findConflictingSession(sessionId); diff --git a/gnome-shell.spec b/gnome-shell.spec index ede367b..cb0cad7 100644 --- a/gnome-shell.spec +++ b/gnome-shell.spec @@ -8,7 +8,7 @@ Name: gnome-shell Version: 40.10 -Release: 26%{?dist} +Release: 27%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -303,6 +303,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de %endif %changelog +* Thu Jun 19 2025 Joan Torres - 40.10-27 +- session-opened signature is reverted to keep ABI compatibility, + use session-opened-with-session-id instead + Related: RHEL-92307 + * Fri May 09 2025 Joan Torres - 40.10-26 - Support conflicting session dialog Resolves: RHEL-92307