diff options
author | Florian Müllner <fmuellner@gnome.org> | 2019-11-27 01:00:00 +0000 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2019-11-29 14:18:59 +0000 |
commit | c0e76186da5b7baf7c8804c0ffa80232a5a6bf98 (patch) | |
tree | aca25fb84d7ddb9d7ba2cddc3ba9fba0c5a43d1c | |
parent | 1b75d78c72bc188b3332b3d23b13c17f673e385f (diff) | |
download | mutter-c0e76186da5b7baf7c8804c0ffa80232a5a6bf98.tar.gz |
stack: Allow promoting transient windows to their parent's layer
When a window that should be stacked above another one is placed in a lower
layer than the other window, we currently allow promoting it to the higher
layer when it has a "transient type". We should do the same when the window
is an actual transient of the other window.
This is particularly relevant for wayland windows, where types play a
much smaller role: Transient windows like non-modal dialogs (and since
commit 666bef7a, popup windows as well) currently end up underneath their
always-on-top parent.
https://gitlab.gnome.org/GNOME/mutter/issues/587
(cherry picked from commit 1c89fce30e0f478f11f90221ddb6b831d7f0f5e8)
-rw-r--r-- | src/core/stack.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/core/stack.c b/src/core/stack.c index 7d144ee7d..49fb43779 100644 --- a/src/core/stack.c +++ b/src/core/stack.c @@ -858,8 +858,11 @@ static void ensure_above (MetaWindow *above, MetaWindow *below) { - if (WINDOW_HAS_TRANSIENT_TYPE(above) && - above->layer < below->layer) + gboolean is_transient; + + is_transient = WINDOW_HAS_TRANSIENT_TYPE (above) || + above->transient_for == below; + if (is_transient && above->layer < below->layer) { meta_topic (META_DEBUG_STACK, "Promoting window %s from layer %u to %u due to contraint\n", |