summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Trevisan (TreviƱo) <mail@3v1n0.net>2023-04-03 20:59:16 +0200
committerMarge Bot <marge-bot@gnome.org>2023-04-04 10:50:42 +0000
commit20e2adc4fc0549a394a18cf207ad32b42b142d4f (patch)
tree24b9c57f0686ae85222b4d62a6a0a76b2dc5348d
parent28a599631de8fbbf28777e5238da1d7addcc0d56 (diff)
downloadmutter-20e2adc4fc0549a394a18cf207ad32b42b142d4f.tar.gz
frames/window-tracker: Select StructureNotifyMask X11 events
The window tracker is filtering XEvents manually as it only requires a subset of the ones that Gdk listens to in the root window, and this is nice, but we were restricting the set a bit too much because due to this we were not notified when an xsettings manager was available, and thus in case gsd-xsettings was launched after meta-window-tracker (a normal scenario under X11), no xsetting was actually applied to the decoration windows. As per this, the default settings were used for everything and never updated, until a restart of the window-tracker. In order to be able to monitor the XSettings changes at startup, we also need to select the StructureNotifyMask as gtk always do by default. See also: https://gitlab.gnome.org/GNOME/gtk/-/blob/4.11.1/gdk/x11/gdkscreen-x11.c#L947-950 Fixes: #2580 Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2948>
-rw-r--r--src/frames/meta-window-tracker.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/frames/meta-window-tracker.c b/src/frames/meta-window-tracker.c
index 39de518f6..e241e568e 100644
--- a/src/frames/meta-window-tracker.c
+++ b/src/frames/meta-window-tracker.c
@@ -341,6 +341,7 @@ meta_window_tracker_constructed (GObject *object)
XSelectInput (xdisplay, xroot,
KeyPressMask |
PropertyChangeMask |
+ StructureNotifyMask |
SubstructureNotifyMask);
g_signal_connect (display, "xevent",