import CS gnome-shell-40.10-25.el9_6

This commit is contained in:
eabdullin 2025-06-24 08:10:58 +00:00
parent 1a2dcdd4d6
commit 016d91b685
4 changed files with 200 additions and 1 deletions

View File

@ -0,0 +1,28 @@
From 97c77c6f222d9a7ca24bb32295f8debf65b303a1 Mon Sep 17 00:00:00 2001
From: Zacharie DUBRULLE <dubrullezacharie@gmail.com>
Date: Thu, 18 May 2023 11:40:32 +0000
Subject: [PATCH] dnd: Don't leak a signal connection
The handler is currently leaked when a drag monitor stops a
motion event.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2770>
---
js/ui/dnd.js | 1 +
1 file changed, 1 insertion(+)
diff --git a/js/ui/dnd.js b/js/ui/dnd.js
index cefde6f603..5027ed4325 100644
--- a/js/ui/dnd.js
+++ b/js/ui/dnd.js
@@ -562,6 +562,7 @@ var _Draggable = class _Draggable {
let result = motionFunc(dragEvent);
if (result != DragMotionResult.CONTINUE) {
global.display.set_cursor(DRAG_CURSOR_MAP[result]);
+ dragEvent.targetActor.disconnect(targetActorDestroyHandlerId);
return GLib.SOURCE_REMOVE;
}
}
--
2.47.0

View File

@ -0,0 +1,41 @@
From 44868c705fe499bf6a0aeeef90192e54175b88cb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Thu, 13 Feb 2025 14:11:04 +0100
Subject: [PATCH] loginDialog: Show session menu button when in IN_PROGRESS
status
Commit c8bb45b added a new IN_PROGRESS status that replaces FAILED
while the user is still allowed to retry authentication.
We need to account for it when updating the visibility of the
session menu button, otherwise the button disappears after
entering a wrong password.
Fixes: c8bb45b41c ("gdm: Limit verification cancellations to be conform to allowed-failures")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5784
---
js/gdm/loginDialog.js | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/js/gdm/loginDialog.js b/js/gdm/loginDialog.js
index 1df5c5eed0..36ecfe444f 100644
--- a/js/gdm/loginDialog.js
+++ b/js/gdm/loginDialog.js
@@ -890,8 +890,12 @@ var LoginDialog = GObject.registerClass({
}
_shouldShowSessionMenuButton() {
- if (this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFYING &&
- this._authPrompt.verificationStatus != AuthPrompt.AuthPromptStatus.VERIFICATION_FAILED)
+ const visibleStatuses = [
+ AuthPrompt.AuthPromptStatus.VERIFYING,
+ AuthPrompt.AuthPromptStatus.VERIFICATION_FAILED,
+ AuthPrompt.AuthPromptStatus.VERIFICATION_IN_PROGRESS,
+ ];
+ if (!visibleStatuses.includes(this._authPrompt.verificationStatus))
return false;
if (this._user && this._user.is_loaded && this._user.is_logged_in())
--
2.48.1

View File

@ -0,0 +1,115 @@
From 11a28c3df5cd0afb254d5f1f68dcb923b97d09ae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 29 Jan 2025 02:46:44 +0100
Subject: [PATCH] st/theme: Reuse stylesheets if possible
The following happens when processing an `@import()` rule:
1. `_st_theme_resolve_url()` to resolve file
2. `insert_stylesheet()` to track file/sheet
a. take ownership of file/sheet (ref)
b. use file as key in `stylesheets_by_file` hash table
c. use file as value in `files_by_stylesheet` hash table
3. release reference to file
This leads to a refcount error when importing a file that
was already parsed before:
1. file start with refcount 1
2. `insert_stylesheet()`
a. increases refcount to 2
b. inserting into `stylesheets_by_file` *decreases* the
passed-in key if the key already exists
c. `files_by_stylesheet` now tracks a file with recount 1
3. releases the last reference to file
The file object tracked in `files_by_stylesheet` is now invalid,
and accessing it results in a crash.
Avoid this issue by reusing existing stylesheets, so we don't insert
a stylesheet that's already tracked.
As a side-effect, this also saves us from re-parsing the same file
unnecessarily.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7306
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3619>
---
src/st/st-theme.c | 32 ++++++++++++++++++++++++++------
1 file changed, 26 insertions(+), 6 deletions(-)
diff --git a/src/st/st-theme.c b/src/st/st-theme.c
index 20d42fd334..5db35645bf 100644
--- a/src/st/st-theme.c
+++ b/src/st/st-theme.c
@@ -250,6 +250,27 @@ insert_stylesheet (StTheme *theme,
g_hash_table_insert (theme->files_by_stylesheet, stylesheet, file);
}
+static CRStyleSheet *
+resolve_stylesheet (StTheme *theme,
+ GFile *file,
+ GError **error)
+{
+ CRStyleSheet *sheet;
+
+ sheet = g_hash_table_lookup (theme->stylesheets_by_file, file);
+ if (sheet)
+ {
+ cr_stylesheet_ref (sheet);
+ return sheet;
+ }
+
+ sheet = parse_stylesheet (file, error);
+ if (sheet)
+ insert_stylesheet (theme, file, sheet);
+
+ return sheet;
+}
+
/**
* st_theme_load_stylesheet:
* @theme: a #StTheme
@@ -267,13 +288,12 @@ st_theme_load_stylesheet (StTheme *theme,
{
CRStyleSheet *stylesheet;
- stylesheet = parse_stylesheet (file, error);
+ stylesheet = resolve_stylesheet (theme, file, error);
if (!stylesheet)
return FALSE;
stylesheet->app_data = GUINT_TO_POINTER (TRUE);
- insert_stylesheet (theme, file, stylesheet);
cr_stylesheet_ref (stylesheet);
theme->custom_stylesheets = g_slist_prepend (theme->custom_stylesheets, stylesheet);
g_signal_emit (theme, signals[STYLESHEETS_CHANGED], 0);
@@ -890,6 +910,7 @@ add_matched_properties (StTheme *a_this,
if (import_rule->sheet == NULL)
{
+ CRStyleSheet *sheet = NULL;
GFile *file = NULL;
if (import_rule->url->stryng && import_rule->url->stryng->str)
@@ -897,13 +918,12 @@ add_matched_properties (StTheme *a_this,
file = _st_theme_resolve_url (a_this,
a_nodesheet,
import_rule->url->stryng->str);
- import_rule->sheet = parse_stylesheet (file, NULL);
+ sheet = resolve_stylesheet (a_this, file, NULL);
}
- if (import_rule->sheet)
+ if (sheet)
{
- insert_stylesheet (a_this, file, import_rule->sheet);
- /* refcount of stylesheets starts off at zero, so we don't need to unref! */
+ import_rule->sheet = sheet;
}
else
{
--
2.49.0

View File

@ -8,7 +8,7 @@
Name: gnome-shell
Version: 40.10
Release: 22%{?dist}
Release: 25%{?dist}
Summary: Window management and application launching for GNOME
License: GPLv2+
@ -34,6 +34,7 @@ Patch15: gdm-networking.patch
Patch16: login-screen-extensions.patch
Patch17: fix-resetting-auth-prompt.patch
Patch18: 0001-authPrompt-Disregard-smartcard-status-changes-events.patch
Patch19: 0001-loginDialog-Show-session-menu-button-when-in-IN_PROG.patch
# Misc.
Patch30: 0001-panel-add-an-icon-to-the-ActivitiesButton.patch
@ -70,6 +71,8 @@ Patch60: 0001-windowPreview-Override-with-window-icon-if-available.patch
Patch61: screencast-bus-name.patch
Patch62: fix-inhibit-shortcut-permission.patch
Patch63: 0001-shell-window-tracker-Help-mutter-finding-app-info-s-.patch
Patch64: 0001-dnd-Don-t-leak-a-signal-connection.patch
Patch65: 0001-st-theme-Reuse-stylesheets-if-possible.patch
%define eds_version 3.33.1
%define gnome_desktop_version 3.35.91
@ -299,6 +302,18 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
%endif
%changelog
* Mon May 05 2025 Florian Müllner <fmuellner@redhat.com> - 40.10-25
- Fix refount issue in stylesheet tracking
Resolves: RHEL-69401
* Thu Feb 13 2025 Florian Müllner <fmuellner@redhat.com> - 40.10-24
- Fix session button visibility after auth failure
Resolves: RHEL-4116
* Tue Nov 19 2024 Florian Müllner <fmuellner@redhat.com> - 40.10-23
- Fix leaked signal connection
Related: RHEL-22692
* Fri Oct 18 2024 Jonas Ådahl <jadahl@redhat.com> - 40.10-22
- Help mutter finding app info for windows
Resolves: RHEL-63000