summaryrefslogtreecommitdiff
path: root/src/x11/window-x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/x11/window-x11.c')
-rw-r--r--src/x11/window-x11.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
index 2b191c2a1..fcb0653df 100644
--- a/src/x11/window-x11.c
+++ b/src/x11/window-x11.c
@@ -35,6 +35,7 @@
#include "backends/meta-logical-monitor.h"
#include "backends/x11/meta-backend-x11.h"
+#include "compositor/meta-window-actor-private.h"
#include "core/boxes-private.h"
#include "core/frame.h"
#include "core/meta-workspace-manager-private.h"
@@ -1324,6 +1325,18 @@ meta_window_x11_current_workspace_changed (MetaWindow *window)
meta_x11_error_trap_pop (x11_display);
}
+static gboolean
+meta_window_x11_can_freeze_commits (MetaWindow *window)
+{
+ MetaWindowActor *window_actor;
+
+ window_actor = meta_window_actor_from_window (window);
+ if (window_actor == NULL)
+ return FALSE;
+
+ return meta_window_actor_can_freeze_commits (window_actor);
+}
+
static void
meta_window_x11_move_resize_internal (MetaWindow *window,
MetaGravity gravity,
@@ -1475,7 +1488,8 @@ meta_window_x11_move_resize_internal (MetaWindow *window,
/* If resizing, freeze commits - This is for Xwayland, and a no-op on Xorg */
if (need_resize_client || need_resize_frame)
{
- if (!meta_window_x11_should_thaw_after_paint (window))
+ if (meta_window_x11_can_freeze_commits (window) &&
+ !meta_window_x11_should_thaw_after_paint (window))
{
meta_window_x11_set_thaw_after_paint (window, TRUE);
meta_window_x11_freeze_commits (window);