Florian Müllner f3420b0341 window: Really propagate effective on-all-workspaces setting to transients
Commit cda9579034b fixed a corner case when setting the initial workspace
state of transient windows, but it still missed a case:

should_be_on_all_workspaces() returns whether the window should be on all
workspaces according to its properties/placement, but it doesn't take
transient relations into account.

That means in case of nested transients, we can still fail the assert:

 1. on-all-workspaces toplevel
 2. should_be_on_all_workspaces() is TRUE for the first transient's parent,
    as the window from (1) has on_all_workspaces_requested == TRUE
 3. should_be_on_all_workspaces() is FALSE for the second transient's
    parent, as the window from (2) is only on-all-workspace because
    of its parent

We can fix this by either using the state from the root ancestor
instead of the direct transient parent, or by using the parent's
on_all_workspaces_state.

The latter is simpler, so go with that.

https://gitlab.gnome.org/GNOME/mutter/issues/1083
2020-05-05 22:19:27 +02:00
2015-07-06 00:52:18 -07:00
2018-04-10 17:58:12 +02:00
2014-03-18 20:37:35 -04:00
2017-05-11 13:45:44 +02:00
2019-05-14 14:25:51 +00:00
2016-04-27 20:37:47 +02:00
2014-07-31 17:50:28 +02:00
2019-05-14 14:25:51 +00:00
Description
94 MiB
Languages
C 98.9%
Meson 0.7%
Python 0.3%