diff options
author | Jonas Ådahl <jadahl@gmail.com> | 2019-08-17 09:46:55 +0200 |
---|---|---|
committer | Jonas Ådahl <jadahl@gmail.com> | 2019-10-16 13:05:40 +0200 |
commit | 9ac52f034081d7b32cf2c3729137ab78eae885aa (patch) | |
tree | 247258a2c41413eb952871ef03f004190c142476 /src/compositor/meta-compositor-x11.c | |
parent | f059466337faf482a6f86010887b234f2a4baf1c (diff) | |
download | mutter-9ac52f034081d7b32cf2c3729137ab78eae885aa.tar.gz |
compositor/x11: Move unredirect logic to helper
It makes it clearer what is required for unredirecting a window.
https://gitlab.gnome.org/GNOME/mutter/merge_requests/734
Diffstat (limited to 'src/compositor/meta-compositor-x11.c')
-rw-r--r-- | src/compositor/meta-compositor-x11.c | 39 |
1 files changed, 24 insertions, 15 deletions
diff --git a/src/compositor/meta-compositor-x11.c b/src/compositor/meta-compositor-x11.c index 4f99c35f5..b31ec451c 100644 --- a/src/compositor/meta-compositor-x11.c +++ b/src/compositor/meta-compositor-x11.c @@ -230,26 +230,35 @@ set_unredirected_window (MetaCompositorX11 *compositor_x11, } static void +maybe_unredirect_top_window (MetaCompositorX11 *compositor_x11) +{ + MetaCompositor *compositor = META_COMPOSITOR (compositor_x11); + MetaWindow *window_to_unredirect = NULL; + MetaWindowActor *window_actor; + + if (meta_compositor_is_unredirect_inhibited (compositor)) + goto out; + + window_actor = meta_compositor_get_top_window_actor (compositor); + if (!window_actor) + goto out; + + if (!meta_window_actor_should_unredirect (window_actor)) + goto out; + + window_to_unredirect = meta_window_actor_get_meta_window (window_actor); + +out: + set_unredirected_window (compositor_x11, window_to_unredirect); +} + +static void meta_compositor_x11_pre_paint (MetaCompositor *compositor) { MetaCompositorX11 *compositor_x11 = META_COMPOSITOR_X11 (compositor); - MetaWindowActor *top_window_actor; MetaCompositorClass *parent_class; - top_window_actor = meta_compositor_get_top_window_actor (compositor); - if (!meta_compositor_is_unredirect_inhibited (compositor) && - top_window_actor && - meta_window_actor_should_unredirect (top_window_actor)) - { - MetaWindow *top_window; - - top_window = meta_window_actor_get_meta_window (top_window_actor); - set_unredirected_window (compositor_x11, top_window); - } - else - { - set_unredirected_window (compositor_x11, NULL); - } + maybe_unredirect_top_window (compositor_x11); parent_class = META_COMPOSITOR_CLASS (meta_compositor_x11_parent_class); parent_class->pre_paint (compositor); |