session-opened signature is reverted to keep ABI compatibility
Use session-opened-with-session-id instead Also set style hardcoded from js files instead of from stylesheets classes because the patches applied to stylesheets aren't used (no sassc). Related: RHEL-92307
This commit is contained in:
parent
933c7ec981
commit
4cf439c61b
@ -79,9 +79,8 @@ there's already a conflicting session opened.
|
|||||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3134>
|
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3134>
|
||||||
---
|
---
|
||||||
.../org.freedesktop.login1.Session.xml | 1 +
|
.../org.freedesktop.login1.Session.xml | 1 +
|
||||||
.../widgets/_login-dialog.scss | 20 ++++++
|
js/gdm/loginDialog.js | 64 +++++++++++++++++++
|
||||||
js/gdm/loginDialog.js | 62 +++++++++++++++++++
|
2 files changed, 65 insertions(+)
|
||||||
3 files changed, 83 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/data/dbus-interfaces/org.freedesktop.login1.Session.xml b/data/dbus-interfaces/org.freedesktop.login1.Session.xml
|
diff --git a/data/dbus-interfaces/org.freedesktop.login1.Session.xml b/data/dbus-interfaces/org.freedesktop.login1.Session.xml
|
||||||
index 6fab81794..ecab4bbaa 100644
|
index 6fab81794..ecab4bbaa 100644
|
||||||
@ -95,37 +94,6 @@ index 6fab81794..ecab4bbaa 100644
|
|||||||
<property name="Remote" type="b" access="read"/>
|
<property name="Remote" type="b" access="read"/>
|
||||||
<property name="Type" type="s" access="read"/>
|
<property name="Type" type="s" access="read"/>
|
||||||
<property name="State" type="s" access="read"/>
|
<property name="State" type="s" access="read"/>
|
||||||
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
|
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
||||||
index 241721ff7..674ff24a5 100644
|
index 241721ff7..674ff24a5 100644
|
||||||
--- a/js/gdm/loginDialog.js
|
--- a/js/gdm/loginDialog.js
|
||||||
@ -138,7 +106,7 @@ index 241721ff7..674ff24a5 100644
|
|||||||
const PopupMenu = imports.ui.popupMenu;
|
const PopupMenu = imports.ui.popupMenu;
|
||||||
const Realmd = imports.gdm.realmd;
|
const Realmd = imports.gdm.realmd;
|
||||||
const UserWidget = imports.ui.userWidget;
|
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);
|
+ 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({
|
+ let textLayout = new St.BoxLayout({
|
||||||
+ style_class: 'conflicting-session-dialog-content',
|
|
||||||
+ vertical: true,
|
+ vertical: true,
|
||||||
+ x_expand: true,
|
+ x_expand: true,
|
||||||
|
+ style: 'spacing: 20px;',
|
||||||
+ });
|
+ });
|
||||||
+
|
+
|
||||||
+ let title = new St.Label({
|
+ let title = new St.Label({
|
||||||
+ text: _('Session Already Running'),
|
+ 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({
|
+ let banner = new St.Label({
|
||||||
+ text: bannerText,
|
+ text: bannerText,
|
||||||
+ style_class: 'conflicting-session-dialog-desc',
|
+ style: 'text-align: center',
|
||||||
+ });
|
+ });
|
||||||
+ banner.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
|
+ banner.clutter_text.ellipsize = Pango.EllipsizeMode.NONE;
|
||||||
+ banner.clutter_text.line_wrap = true;
|
+ banner.clutter_text.line_wrap = true;
|
||||||
+
|
+
|
||||||
+ let warningBanner = new St.Label({
|
+ let warningBanner = new St.Label({
|
||||||
+ text: _('Force stopping will quit any running apps and processes, and could result in data loss'),
|
+ 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.ellipsize = Pango.EllipsizeMode.NONE;
|
||||||
+ warningBanner.clutter_text.line_wrap = true;
|
+ warningBanner.clutter_text.line_wrap = true;
|
||||||
@ -227,14 +197,25 @@ closed on its side, the new session will start.
|
|||||||
|
|
||||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3134>
|
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3134>
|
||||||
---
|
---
|
||||||
js/gdm/loginDialog.js | 73 +++++++++++++++++++++++++++++++++++++++++--
|
js/gdm/loginDialog.js | 77 ++++++++++++++++++++++++++++++++++++++++---
|
||||||
1 file changed, 71 insertions(+), 2 deletions(-)
|
1 file changed, 73 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
|
||||||
index 674ff24a5..25b86880d 100644
|
index 674ff24a5..25b86880d 100644
|
||||||
--- a/js/gdm/loginDialog.js
|
--- a/js/gdm/loginDialog.js
|
||||||
+++ b/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) {
|
_startSession(serviceName) {
|
||||||
this._bindOpacity();
|
this._bindOpacity();
|
||||||
this.ease({
|
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;
|
+ return null;
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ async _onSessionOpened(client, serviceName, sessionId) {
|
+ async _onSessionOpenedWithSessionId(client, serviceName, sessionId) {
|
||||||
+ try {
|
+ try {
|
||||||
+ if (sessionId) {
|
+ if (sessionId) {
|
||||||
+ const conflictingSession = await this._findConflictingSession(sessionId);
|
+ const conflictingSession = await this._findConflictingSession(sessionId);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
Name: gnome-shell
|
Name: gnome-shell
|
||||||
Version: 40.10
|
Version: 40.10
|
||||||
Release: 26%{?dist}
|
Release: 27%{?dist}
|
||||||
Summary: Window management and application launching for GNOME
|
Summary: Window management and application launching for GNOME
|
||||||
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
@ -303,6 +303,11 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 19 2025 Joan Torres <joantolo@redhat.com> - 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 <joantolo@redhat.com> - 40.10-26
|
* Fri May 09 2025 Joan Torres <joantolo@redhat.com> - 40.10-26
|
||||||
- Support conflicting session dialog
|
- Support conflicting session dialog
|
||||||
Resolves: RHEL-92307
|
Resolves: RHEL-92307
|
||||||
|
Loading…
Reference in New Issue
Block a user