summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Ã…dahl <jadahl@gmail.com>2023-03-17 19:25:14 +0100
committerMarge Bot <marge-bot@gnome.org>2023-03-18 18:25:39 +0000
commit08bdee58c999e3b64ea90802d10e17abb1f727d5 (patch)
tree10b6beb7a49b2f234955ea9569c787a53a10de29
parent0ed250314007d30cc18aef20908f58128d4044df (diff)
downloadmutter-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.c3
-rw-r--r--src/core/window.c19
-rw-r--r--src/x11/window-x11.c2
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);