summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGustavo Noronha Silva <gustavo.noronha@collabora.co.uk>2016-09-26 10:56:42 +0200
committerGustavo Noronha Silva <gustavo.noronha@collabora.co.uk>2016-09-28 10:17:09 +0200
commit7292b035593008e79cf4aae1b8dcf0f7a83bc55f (patch)
tree81cfdcf1bf8617d7de57e80d01008c89b9561046
parentdbd0923b5f7b4a7cdea182c8d20085c013c4571c (diff)
downloadgtk+-7292b035593008e79cf4aae1b8dcf0f7a83bc55f.tar.gz
wayland: always sync state after a frame is painted
Opaque region, margin and input region were only being synced when a cairo paint happened. That caused GL paints to sometimes end up with bad state. Move calls to sync state to gdk_window_impl_wayland_end_paint. https://bugzilla.gnome.org/show_bug.cgi?id=771553
-rw-r--r--gdk/wayland/gdkwindow-wayland.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gdk/wayland/gdkwindow-wayland.c b/gdk/wayland/gdkwindow-wayland.c
index f35c4c8c2b..7dbb97951d 100644
--- a/gdk/wayland/gdkwindow-wayland.c
+++ b/gdk/wayland/gdkwindow-wayland.c
@@ -597,10 +597,6 @@ on_frame_clock_after_paint (GdkFrameClock *clock,
if (impl->pending_buffer_attached)
read_back_cairo_surface (window);
- gdk_wayland_window_sync_margin (window);
- gdk_wayland_window_sync_opaque_region (window);
- gdk_wayland_window_sync_input_region (window);
-
/* From this commit forward, we can't write to the buffer,
* it's "live". In the future, if we need to stage more changes
* we have to allocate a new staging buffer and draw to it instead.
@@ -936,6 +932,10 @@ gdk_window_impl_wayland_end_paint (GdkWindow *window)
impl->pending_commit = TRUE;
}
+
+ gdk_wayland_window_sync_margin (window);
+ gdk_wayland_window_sync_opaque_region (window);
+ gdk_wayland_window_sync_input_region (window);
}
static gboolean