<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/mutter.git, branch cherry-pick-e0944b60</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>backend: Don't pull generated headers (indirectly)</title>
<updated>2020-11-12T18:18:46+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2020-10-05T10:13:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=965c94d46788188a3fe24e64056e39ad28469d18'/>
<id>965c94d46788188a3fe24e64056e39ad28469d18</id>
<content type='text'>
Use a typedef for MetaRemoteDesktop, so tests poking MetaBackend don't
indirectly depend upon generated headers. This is arguably a code fix
for a build system bug.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1470

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1449
(or something...)


(cherry picked from commit e0944b6097566dee3a09a919ba49a071e0137f26)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use a typedef for MetaRemoteDesktop, so tests poking MetaBackend don't
indirectly depend upon generated headers. This is arguably a code fix
for a build system bug.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1470

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1449
(or something...)


(cherry picked from commit e0944b6097566dee3a09a919ba49a071e0137f26)</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/xdg-shell: Imitate undefined behavior Qt relies upon</title>
<updated>2020-11-12T14:07:30+00:00</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2020-11-12T13:06:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=067af969c03c31a2b7380b14f3344ef7d2258313'/>
<id>067af969c03c31a2b7380b14f3344ef7d2258313</id>
<content type='text'>
Qt sets window geometry without in the same commit providing actual
content matching it, and relies on the compositor being able to adapt
without a new window geometry on a later commit. Other compositors do
this, so do the same, even though it's not guaranteed according to spec.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1557
(cherry picked from commit f5b44be9f22efd59b34dd8c3a98328306f979eea)

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1559
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Qt sets window geometry without in the same commit providing actual
content matching it, and relies on the compositor being able to adapt
without a new window geometry on a later commit. Other compositors do
this, so do the same, even though it's not guaranteed according to spec.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1557
(cherry picked from commit f5b44be9f22efd59b34dd8c3a98328306f979eea)

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1559
</pre>
</div>
</content>
</entry>
<entry>
<title>window/wayland: Warn when attempted to resend uninitialized state</title>
<updated>2020-11-12T14:07:30+00:00</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2020-11-12T13:40:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=29776c99a85c071c48336e04b6e8e7191b2bc3b5'/>
<id>29776c99a85c071c48336e04b6e8e7191b2bc3b5</id>
<content type='text'>
This happens due to Qt doing wierd things, committing incomplete and
incorrect state.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1559
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This happens due to Qt doing wierd things, committing incomplete and
incorrect state.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1559
</pre>
</div>
</content>
</entry>
<entry>
<title>backends/x11: Emit CLUTTER_DEVICE_ADDED events for initial devices</title>
<updated>2020-11-07T10:35:47+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2020-11-06T17:00:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=979eb80dc1560c288482f919752c47b233b8a36f'/>
<id>979eb80dc1560c288482f919752c47b233b8a36f</id>
<content type='text'>
This is similar to commit b9e5a2d6e23, but for the X11 backend.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1466
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1495

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1553

(cherry-picked from commit b6211bb6842fd7f88bc4f70f0d268614b85f4b3d)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is similar to commit b9e5a2d6e23, but for the X11 backend.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1466
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1495

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1553

(cherry-picked from commit b6211bb6842fd7f88bc4f70f0d268614b85f4b3d)
</pre>
</div>
</content>
</entry>
<entry>
<title>clutter/event: Do not filter out DEVICE_ADDED/REMOVED events</title>
<updated>2020-11-07T10:35:22+00:00</updated>
<author>
<name>Carlos Garnacho</name>
<email>carlosg@gnome.org</email>
</author>
<published>2020-11-06T16:59:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=17daa356813e9aa1f01fbe7176f993306aa7f90b'/>
<id>17daa356813e9aa1f01fbe7176f993306aa7f90b</id>
<content type='text'>
These devices in x11 are "disabled", that doesn't mean we should refrain
from notifying about them.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1476
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1496

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1553

(cherry-picked from commit 34710eabc0dc2154d26296f3121728683af4afe6)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These devices in x11 are "disabled", that doesn't mean we should refrain
from notifying about them.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1476
Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1496

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1553

(cherry-picked from commit 34710eabc0dc2154d26296f3121728683af4afe6)
</pre>
</div>
</content>
</entry>
<entry>
<title>wayland/subsurface: Check for circular relationships</title>
<updated>2020-11-05T21:21:31+00:00</updated>
<author>
<name>Robert Mader</name>
<email>robert.mader@posteo.de</email>
</author>
<published>2020-11-04T18:32:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=a0a4c3e52a0d3db7c7d43abc535326cac4760b24'/>
<id>a0a4c3e52a0d3db7c7d43abc535326cac4760b24</id>
<content type='text'>
If a subsurface is equal to or an ancestor of the parent surface
we currently crash. Check for that case and terminate the client.

Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1521

(cherry picked from commit 4e9a67acc6e09b012b6034b1928c2cc6ba0cb1bf)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If a subsurface is equal to or an ancestor of the parent surface
we currently crash. Check for that case and terminate the client.

Closes https://gitlab.gnome.org/GNOME/mutter/-/issues/1521

(cherry picked from commit 4e9a67acc6e09b012b6034b1928c2cc6ba0cb1bf)
</pre>
</div>
</content>
</entry>
<entry>
<title>x11/output: Fix init tile info guard</title>
<updated>2020-11-05T14:04:49+00:00</updated>
<author>
<name>Jonas Ådahl</name>
<email>jadahl@gmail.com</email>
</author>
<published>2020-11-05T07:46:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=23a9fdf6d80c0b3fcab7a3e307843a14f165ead2'/>
<id>23a9fdf6d80c0b3fcab7a3e307843a14f165ead2</id>
<content type='text'>
Monitor tile info is possible to fetch when RANDR version 15 is exposed
by the X11 server. We had inverted the check meaning that only if older
versions were advertised would we attempt to init the tile information.
Fix this guard, thus fix monitor tiling on X11.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1524


(cherry picked from commit 4ecc80fd8025842452262001fc4d6b7047696d4e)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Monitor tile info is possible to fetch when RANDR version 15 is exposed
by the X11 server. We had inverted the check meaning that only if older
versions were advertised would we attempt to init the tile information.
Fix this guard, thus fix monitor tiling on X11.

Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/1524


(cherry picked from commit 4ecc80fd8025842452262001fc4d6b7047696d4e)</pre>
</div>
</content>
</entry>
<entry>
<title>clutter/actor: Queue redraw on no-layout parents when unmapping</title>
<updated>2020-11-03T23:09:44+00:00</updated>
<author>
<name>Jonas Dreßler</name>
<email>verdre@v0yd.nl</email>
</author>
<published>2020-11-01T11:33:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=0caae95ad756e42343fd09e29cf526f61b6781c2'/>
<id>0caae95ad756e42343fd09e29cf526f61b6781c2</id>
<content type='text'>
As explained in https://gitlab.gnome.org/GNOME/mutter/-/issues/1494,
with commit 29caa5bea576ed056aa6c82de192426abe6019ae we stopped queueing
a relayout for the parent of the removed actor in
clutter_actor_remove_child_internal(). This relayout was, as opposed to
the relayout in clutter_actor_real_hide()/clutter_actor_real_unmap(),
queued unconditionally without looking at the parents NO_LAYOUT flag.

Now while that relayout in clutter_actor_remove_child_internal() would
do unnecessary work if the parent had the NO_LAYOUT flag set, it did
also queue a redraw of the parent, which is necessary in any case.

So by removing that relayout in clutter_actor_remove_child_internal(),
we stopped queueing redraws for NO_LAYOUT parents when a child gets
removed from the scenegraph. This caused bugs where the texture of the
child would be left visible on the screen even though the child got
destroyed.

To fix this, make sure again that we always queue a redraw on the parent
when unmapping a child.

Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1494


(cherry picked from commit c88615aac869bf94a0e9ebc372396eabc640c0a3)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As explained in https://gitlab.gnome.org/GNOME/mutter/-/issues/1494,
with commit 29caa5bea576ed056aa6c82de192426abe6019ae we stopped queueing
a relayout for the parent of the removed actor in
clutter_actor_remove_child_internal(). This relayout was, as opposed to
the relayout in clutter_actor_real_hide()/clutter_actor_real_unmap(),
queued unconditionally without looking at the parents NO_LAYOUT flag.

Now while that relayout in clutter_actor_remove_child_internal() would
do unnecessary work if the parent had the NO_LAYOUT flag set, it did
also queue a redraw of the parent, which is necessary in any case.

So by removing that relayout in clutter_actor_remove_child_internal(),
we stopped queueing redraws for NO_LAYOUT parents when a child gets
removed from the scenegraph. This caused bugs where the texture of the
child would be left visible on the screen even though the child got
destroyed.

To fix this, make sure again that we always queue a redraw on the parent
when unmapping a child.

Fixes https://gitlab.gnome.org/GNOME/mutter/-/issues/1494


(cherry picked from commit c88615aac869bf94a0e9ebc372396eabc640c0a3)</pre>
</div>
</content>
</entry>
<entry>
<title>backend: Update cursor visibility on device added</title>
<updated>2020-11-02T10:13:53+00:00</updated>
<author>
<name>Olivier Fourdan</name>
<email>ofourdan@redhat.com</email>
</author>
<published>2020-10-30T14:44:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=33605179a4a3c9d84e6f87b5c8cafa7d677eba0c'/>
<id>33605179a4a3c9d84e6f87b5c8cafa7d677eba0c</id>
<content type='text'>
Not calling libinput dispatch in the backend constructor defeats the
logic in post init as the device added events have not been processed
yet.

So instead of trying to guess the cursor initial visibility, simply
update it along when devices get added.

Additional benefit, we do not need to walk the all device list looking
for touchscreens anymore, we just need to check the device being added
since the current logic is to hide the cursor as soon as a touchscreen
is found.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1534
(cherry picked from commit 9b881729821b360cc6e6f06f37fee0fe9b417a27)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not calling libinput dispatch in the backend constructor defeats the
logic in post init as the device added events have not been processed
yet.

So instead of trying to guess the cursor initial visibility, simply
update it along when devices get added.

Additional benefit, we do not need to walk the all device list looking
for touchscreens anymore, we just need to check the device being added
since the current logic is to hide the cursor as soon as a touchscreen
is found.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1534
(cherry picked from commit 9b881729821b360cc6e6f06f37fee0fe9b417a27)
</pre>
</div>
</content>
</entry>
<entry>
<title>clutter/backend: Don't dispatch libinput events too early</title>
<updated>2020-11-02T10:13:53+00:00</updated>
<author>
<name>Olivier Fourdan</name>
<email>ofourdan@redhat.com</email>
</author>
<published>2020-10-27T09:27:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/mutter.git/commit/?id=32769c120896e566e6c78bc8a2d744fc0d4c272b'/>
<id>32769c120896e566e6c78bc8a2d744fc0d4c272b</id>
<content type='text'>
At startup, libinput dispatch is called from the MetaSeatNative
constructed callback.

That means that we may get libinput events even before the default seat
is set.

In turn, processing those events may trigger the use the default seat
while it's still not set yet, and cause a crash of gnome-shell/mutter
at startup.

A simple reproducer for this is to start gnome-shell/mutter with a
tablet connected and the stylus in proximity, the proximity event will
cause gnome-shell/mutter to crash at startup.

To avoid that issue, avoid dispatching libinput events early from the
MetaSeatNative constructed callback, those events will eventually get
processed when the seat and the backend are all setup.

https://gitlab.gnome.org/GNOME/mutter/-/issues/1501
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1534
(cherry picked from commit c618b8a0eb1919219da29934945b303fd0a311ed)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
At startup, libinput dispatch is called from the MetaSeatNative
constructed callback.

That means that we may get libinput events even before the default seat
is set.

In turn, processing those events may trigger the use the default seat
while it's still not set yet, and cause a crash of gnome-shell/mutter
at startup.

A simple reproducer for this is to start gnome-shell/mutter with a
tablet connected and the stylus in proximity, the proximity event will
cause gnome-shell/mutter to crash at startup.

To avoid that issue, avoid dispatching libinput events early from the
MetaSeatNative constructed callback, those events will eventually get
processed when the seat and the backend are all setup.

https://gitlab.gnome.org/GNOME/mutter/-/issues/1501
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1534
(cherry picked from commit c618b8a0eb1919219da29934945b303fd0a311ed)
</pre>
</div>
</content>
</entry>
</feed>
