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>
This commit is contained in:
Marco Trevisan (Treviño) 2023-04-03 20:59:16 +02:00 committed by Marge Bot
parent 28a599631d
commit 20e2adc4fc

View File

@ -341,6 +341,7 @@ meta_window_tracker_constructed (GObject *object)
XSelectInput (xdisplay, xroot, XSelectInput (xdisplay, xroot,
KeyPressMask | KeyPressMask |
PropertyChangeMask | PropertyChangeMask |
StructureNotifyMask |
SubstructureNotifyMask); SubstructureNotifyMask);
g_signal_connect (display, "xevent", g_signal_connect (display, "xevent",