<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/mutter.git/src/frames, branch main</title>
<subtitle>gitlab.gnome.org: GNOME/mutter.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/'/>
<entry>
<title>frames: Disable XDND support on the frame window</title>
<updated>2023-04-28T10:46:58+00:00</updated>
<author>
<name>Sebastian Keller</name>
<email>skeller@gnome.org</email>
</author>
<published>2023-04-28T10:20:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=d643eb5c6fe50e7f1afffda0e8747a87f668a799'/>
<id>d643eb5c6fe50e7f1afffda0e8747a87f668a799</id>
<content type='text'>
All X11 surfaces created by gtk4 claim to support XDND via the XdndAware
property. This was leading some clients, e.g. Qt, to consider the frame
window as drop target instead of the client window.

Avoid this issue by removing the XdndAware property again after gtk has
created the surface.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2715
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2978&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
All X11 surfaces created by gtk4 claim to support XDND via the XdndAware
property. This was leading some clients, e.g. Qt, to consider the frame
window as drop target instead of the client window.

Avoid this issue by removing the XdndAware property again after gtk has
created the surface.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2715
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2978&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Use cairo renderer on GTK frames</title>
<updated>2023-04-24T10:07:06+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2023-04-24T10:07:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=57fdd7efd2d2ef05df86c60e36e200a15a9918a0'/>
<id>57fdd7efd2d2ef05df86c60e36e200a15a9918a0</id>
<content type='text'>
Going for the default GL renderer is known to trigger rendering
artifacts using the NVidia proprietary driver. Since we don't have
too many expectatives about frames being flashy (not to the point
of mandating GL), resort to the cairo renderer in the mean time.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2976&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Going for the default GL renderer is known to trigger rendering
artifacts using the NVidia proprietary driver. Since we don't have
too many expectatives about frames being flashy (not to the point
of mandating GL), resort to the cairo renderer in the mean time.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2976&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>x11: Always initialize all fields of XEvents sent via XSendEvent</title>
<updated>2023-04-16T23:52:36+00:00</updated>
<author>
<name>Sebastian Keller</name>
<email>skeller@gnome.org</email>
</author>
<published>2023-04-16T21:45:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=dddaf19d07605ff42004dad44caa17972d1b925b'/>
<id>dddaf19d07605ff42004dad44caa17972d1b925b</id>
<content type='text'>
The X server ignores the send_event and serial in incoming XEvents, so
they were not initialized when calling XSendEvent in a few places.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2641
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2964&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The X server ignores the send_event and serial in incoming XEvents, so
they were not initialized when calling XSendEvent in a few places.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2641
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2964&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Forward _NET_WM_STATE during frame initialization</title>
<updated>2023-04-14T13:55:23+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2023-04-14T12:40:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=2a600ac98e5d47f68a3e39dc12801a5e1c7bb7fa'/>
<id>2a600ac98e5d47f68a3e39dc12801a5e1c7bb7fa</id>
<content type='text'>
Ensure the frame window is created at the right fullscreen state
before showing it and assigning it to the client window.

A peculiarity of this property on frame windows is that it is
typically single-handedly updated from the Mutter side, in synchronization
with client window state. It can only differ during creation, since
GTK still likes to apply its own state.

Also, the only relevant property seems to be _NET_WM_STATE_FULLSCREEN,
since the others are less relevant to the role of the frames client,
and get applied to the MetaWindow as a whole, instead.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2712
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2961&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure the frame window is created at the right fullscreen state
before showing it and assigning it to the client window.

A peculiarity of this property on frame windows is that it is
typically single-handedly updated from the Mutter side, in synchronization
with client window state. It can only differ during creation, since
GTK still likes to apply its own state.

Also, the only relevant property seems to be _NET_WM_STATE_FULLSCREEN,
since the others are less relevant to the role of the frames client,
and get applied to the MetaWindow as a whole, instead.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2712
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2961&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames/content: Use gtk_widget_compute_point()</title>
<updated>2023-04-05T16:38:16+00:00</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2023-04-04T07:42:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=ab36baa9b1e7859f6958e5389eb086581b174d6c'/>
<id>ab36baa9b1e7859f6958e5389eb086581b174d6c</id>
<content type='text'>
The non-graphene-point variant is deprecated.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2949&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The non-graphene-point variant is deprecated.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2949&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames/window-tracker: Select StructureNotifyMask X11 events</title>
<updated>2023-04-04T10:50:42+00:00</updated>
<author>
<name>Marco Trevisan (Treviño)</name>
<email>mail@3v1n0.net</email>
</author>
<published>2023-04-03T18:59:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=20e2adc4fc0549a394a18cf207ad32b42b142d4f'/>
<id>20e2adc4fc0549a394a18cf207ad32b42b142d4f</id>
<content type='text'>
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: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2948&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2948&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Select SubstructureNotifyMask too</title>
<updated>2023-03-04T23:45:35+00:00</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2023-03-04T22:52:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=af9a7741f430fea5e7f0874c93a3ccc9f01cae3b'/>
<id>af9a7741f430fea5e7f0874c93a3ccc9f01cae3b</id>
<content type='text'>
This is the mask that lets us receive among other events the rather
important CreateNotify, that tells us about new winows. This has went by
rather unnoticed except for cases where multiple windows show up very
quickly directly after the frames client spawned, because the drag icon
surface cache eventually already did select that particular mask.

Make things more reliably by explicitly setting the mask for the events
we rely on to function.

This fixes flaky stacking tests that map multiple X11 windows in a row.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2894&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the mask that lets us receive among other events the rather
important CreateNotify, that tells us about new winows. This has went by
rather unnoticed except for cases where multiple windows show up very
quickly directly after the frames client spawned, because the drag icon
surface cache eventually already did select that particular mask.

Make things more reliably by explicitly setting the mask for the events
we rely on to function.

This fixes flaky stacking tests that map multiple X11 windows in a row.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2894&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Fix code typo</title>
<updated>2023-02-28T17:13:23+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2023-02-28T17:13:23+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=2279f40e17ce1806a57effba1ed8496859783bea'/>
<id>2279f40e17ce1806a57effba1ed8496859783bea</id>
<content type='text'>
We are picking the wrong fallback frame title string in a
branch.

Fixes: 6df9eab88 ("frames: Handle _NET_WM_VISIBLE_NAME")
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2875&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We are picking the wrong fallback frame title string in a
branch.

Fixes: 6df9eab88 ("frames: Handle _NET_WM_VISIBLE_NAME")
Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2875&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Handle WM_NAME</title>
<updated>2023-02-27T15:38:25+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2023-02-27T13:30:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=022e20e87e9c5ce6b7da71e24960226f923a052f'/>
<id>022e20e87e9c5ce6b7da71e24960226f923a052f</id>
<content type='text'>
This is the most ancient form of "window titles", not guaranteed
to be UTF-8, take the usual precautions before using this string
and keep it as a last resort.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2872&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the most ancient form of "window titles", not guaranteed
to be UTF-8, take the usual precautions before using this string
and keep it as a last resort.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2872&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>frames: Handle _NET_WM_VISIBLE_NAME</title>
<updated>2023-02-27T15:38:25+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2023-02-27T13:19:10+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=6df9eab8800097ee44729bb775e7ae3660e011ea'/>
<id>6df9eab8800097ee44729bb775e7ae3660e011ea</id>
<content type='text'>
This is occasionally set by Mutter, in order to hint about remote
X11 clients, etc.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2872&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is occasionally set by Mutter, in order to hint about remote
X11 clients, etc.

Part-of: &lt;https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2872&gt;
</pre>
</div>
</content>
</entry>
</feed>
