diff options
author | Jonas Ã…dahl <jadahl@gmail.com> | 2023-03-17 19:25:14 +0100 |
---|---|---|
committer | Marge Bot <marge-bot@gnome.org> | 2023-03-18 18:25:39 +0000 |
commit | 08bdee58c999e3b64ea90802d10e17abb1f727d5 (patch) | |
tree | 10b6beb7a49b2f234955ea9569c787a53a10de29 | |
parent | 0ed250314007d30cc18aef20908f58128d4044df (diff) | |
download | mutter-08bdee58c999e3b64ea90802d10e17abb1f727d5.tar.gz |
Revert "core: Avoid setting up frames on fullscreen windows"
This caused feedback loops with old statically compiled SDL
applications. The bug is fixed in upstream SDL, but that doesn't help
when the executables have old SDL's built into them.
This reverts commit beeeea546b2145e138a247334d81cfa984da3308.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2678
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2921>
-rw-r--r-- | src/core/frame.c | 3 | ||||
-rw-r--r-- | src/core/window.c | 19 | ||||
-rw-r--r-- | src/x11/window-x11.c | 2 |
3 files changed, 7 insertions, 17 deletions
diff --git a/src/core/frame.c b/src/core/frame.c index c2f0b43b1..9b08d0727 100644 --- a/src/core/frame.c +++ b/src/core/frame.c @@ -45,9 +45,6 @@ meta_window_ensure_frame (MetaWindow *window) MetaX11Display *x11_display = window->display->x11_display; unsigned long data[1] = { 1 }; - if (window->frame) - return; - meta_x11_error_trap_push (x11_display); XChangeProperty (x11_display->xdisplay, diff --git a/src/core/window.c b/src/core/window.c index 1451f0d18..8e11ab7c8 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -851,7 +851,7 @@ client_window_should_be_mapped (MetaWindow *window) #endif if (window->client_type == META_WINDOW_CLIENT_TYPE_X11 && - window->decorated && !window->fullscreen && !window->frame) + window->decorated && !window->frame) return FALSE; return TRUE; @@ -1705,7 +1705,7 @@ meta_window_should_be_showing (MetaWindow *window) #endif if (window->client_type == META_WINDOW_CLIENT_TYPE_X11 && - window->decorated && !window->fullscreen && !window->frame) + window->decorated && !window->frame) return FALSE; /* Windows should be showing if they're located on the @@ -5334,15 +5334,6 @@ meta_window_update_struts (MetaWindow *window) } static void -sync_needs_frame (MetaWindow *window) -{ - if (window->decorated && !window->fullscreen) - meta_window_ensure_frame (window); - else - meta_window_destroy_frame (window); -} - -static void meta_window_type_changed (MetaWindow *window) { gboolean old_decorated = window->decorated; @@ -5355,7 +5346,10 @@ meta_window_type_changed (MetaWindow *window) set_net_wm_state (window); /* Update frame */ - sync_needs_frame (window); + if (window->decorated) + meta_window_ensure_frame (window); + else + meta_window_destroy_frame (window); /* update stacking constraints */ meta_window_update_layer (window); @@ -5626,7 +5620,6 @@ meta_window_recalc_features (MetaWindow *window) if (window->has_resize_func != old_has_resize_func) g_object_notify_by_pspec (G_OBJECT (window), obj_props[PROP_RESIZEABLE]); - sync_needs_frame (window); meta_window_frame_size_changed (window); } diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c index a85eb9c37..e87037af8 100644 --- a/src/x11/window-x11.c +++ b/src/x11/window-x11.c @@ -562,7 +562,7 @@ meta_window_x11_manage (MetaWindow *window) if (!window->override_redirect) update_sm_hints (window); /* must come after transient_for */ - if (window->decorated && !window->fullscreen) + if (window->decorated) meta_window_ensure_frame (window); else meta_window_x11_initialize_state (window); |