gnome-* ver. bump

This commit is contained in:
Rmys
2025-06-10 15:20:46 +03:00
parent 6a0eadceef
commit b1c938d074
7 changed files with 162 additions and 5 deletions
@@ -0,0 +1,50 @@
From 02068a8f97df39055bc5e8d631847f5499a821a0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 18 Feb 2025 15:42:58 +0100
Subject: [PATCH] frames/window-tracker: Handle override-redirect attribute
change.
If a client creates windows with override-redirect attribute, but later
changes it to allow its windows to be managed, the window tracker will
still not be tracking _MUTTER_NEEDS_FRAME property changes and any
decoration change will be broken.
This reproduces with Wine, if a window is first created as a popup, to
later change to a framed window. Wine always creates its windows with
override-redirect, and only later decides to let them be managed.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4287>
(cherry picked from commit 4d194b8e1da555c14e1dc092879e9580f25b6986)
---
src/frames/meta-window-tracker.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/src/frames/meta-window-tracker.c b/src/frames/meta-window-tracker.c
index 490e52c7cf..cfd62b6a58 100644
--- a/src/frames/meta-window-tracker.c
+++ b/src/frames/meta-window-tracker.c
@@ -263,6 +263,21 @@ on_xevent (GdkDisplay *display,
xwindow = xevent->xcreatewindow.window;
listen_set_up_frame (window_tracker, xwindow);
}
+ else if (xevent->type == ConfigureNotify &&
+ xevent->xconfigure.event == xroot)
+ {
+ gboolean has_frame;
+
+ xwindow = xevent->xconfigure.window;
+ has_frame =
+ g_hash_table_contains (window_tracker->frames,
+ GUINT_TO_POINTER (xwindow));
+
+ if (!xevent->xconfigure.override_redirect && !has_frame)
+ listen_set_up_frame (window_tracker, xwindow);
+ else if (xevent->xconfigure.override_redirect && has_frame)
+ remove_frame (window_tracker, xwindow);
+ }
else if (xevent->type == DestroyNotify)
{
xwindow = xevent->xdestroywindow.window;
--
GitLab
@@ -0,0 +1,32 @@
From 5a78e6ae05ddf099d62e956c32b07ade7321b9b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Thu, 29 May 2025 10:44:32 +0200
Subject: [PATCH] frames/window-tracker: Remove unnecessary frame existence
check
It's already checked inside remove_frame.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4465>
(cherry picked from commit dbd29639cb4a3192b5c0a895a2203d1f9498c4df)
---
src/frames/meta-window-tracker.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/src/frames/meta-window-tracker.c b/src/frames/meta-window-tracker.c
index cfd62b6a58..247248d108 100644
--- a/src/frames/meta-window-tracker.c
+++ b/src/frames/meta-window-tracker.c
@@ -291,9 +291,7 @@ on_xevent (GdkDisplay *display,
!g_hash_table_contains (window_tracker->client_windows,
GUINT_TO_POINTER (xwindow)))
set_up_frame (window_tracker, xwindow);
- else if (xevent->xproperty.state == PropertyDelete &&
- g_hash_table_contains (window_tracker->client_windows,
- GUINT_TO_POINTER (xwindow)))
+ else if (xevent->xproperty.state == PropertyDelete)
remove_frame (window_tracker, xwindow);
}
else if (xevent->type == PropertyNotify)
--
GitLab
@@ -0,0 +1,48 @@
From a38fe3a50427bd0ffdd86d0a565371d992027438 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Thu, 29 May 2025 10:44:33 +0200
Subject: [PATCH] frames/window-tracker: Move frame existence check inside of
set_up_frame
Avoiding creating frames multiple times when listen_set_up_frame is
called from a ConfigureNotify event after the frame has already been
created.
Fixes: 4d194b8e1 ("frames/window-tracker: Handle override-redirect attribute change.")
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/4138
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4465>
(cherry picked from commit a1d6e5771bbd704c65c8079310102637a5aab071)
---
src/frames/meta-window-tracker.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/frames/meta-window-tracker.c b/src/frames/meta-window-tracker.c
index 247248d108..18801f5c3f 100644
--- a/src/frames/meta-window-tracker.c
+++ b/src/frames/meta-window-tracker.c
@@ -125,6 +125,11 @@ set_up_frame (MetaWindowTracker *window_tracker,
unsigned long data[1];
GtkWidget *frame;
+ frame = g_hash_table_lookup (window_tracker->client_windows,
+ GUINT_TO_POINTER (xwindow));
+ if (frame)
+ return;
+
/* Double check it's not a request for a frame of our own. */
if (g_hash_table_contains (window_tracker->frames,
GUINT_TO_POINTER (xwindow)))
@@ -287,9 +292,7 @@ on_xevent (GdkDisplay *display,
xevent->xproperty.atom ==
gdk_x11_get_xatom_by_name_for_display (display, "_MUTTER_NEEDS_FRAME"))
{
- if (xevent->xproperty.state == PropertyNewValue &&
- !g_hash_table_contains (window_tracker->client_windows,
- GUINT_TO_POINTER (xwindow)))
+ if (xevent->xproperty.state == PropertyNewValue)
set_up_frame (window_tracker, xwindow);
else if (xevent->xproperty.state == PropertyDelete)
remove_frame (window_tracker, xwindow);
--
GitLab
+6 -2
View File
@@ -58,6 +58,10 @@
<Dependency>python3-argcomplete</Dependency>
<Dependency>python3-docutils</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">a38fe3a50427bd0ffdd86d0a565371d992027438.patch</Patch>
<Patch level="1">5a78e6ae05ddf099d62e956c32b07ade7321b9b5.patch</Patch>
</Patches>
</Source>
<Package>
@@ -204,8 +208,8 @@
</Files>
</Package>
<History>
<Update release="39">
<Date>2025-05-27</Date>
<Update release="40">
<Date>2025-06-10</Date>
<Version>48.3</Version>
<Comment>Version bump.</Comment>
<Name>Pisi Linux Community</Name>