GdkWindowWayland: draw, then damage, then commit
When exposing an area, we were individually damaging and committing each rectangle, *before* drawing. Surprisingly, this almost worked. Order things right and only commit once. https://bugzilla.gnome.org/show_bug.cgi?id=698864
This commit is contained in:
parent
a082f4d804
commit
d5310f9367
@ -1626,16 +1626,17 @@ gdk_wayland_window_process_updates_recurse (GdkWindow *window,
|
|||||||
if (impl->cairo_surface)
|
if (impl->cairo_surface)
|
||||||
gdk_wayland_window_attach_image (window);
|
gdk_wayland_window_attach_image (window);
|
||||||
|
|
||||||
|
_gdk_window_process_updates_recurse (window, region);
|
||||||
|
|
||||||
n = cairo_region_num_rectangles(region);
|
n = cairo_region_num_rectangles(region);
|
||||||
for (i = 0; i < n; i++)
|
for (i = 0; i < n; i++)
|
||||||
{
|
{
|
||||||
cairo_region_get_rectangle (region, i, &rect);
|
cairo_region_get_rectangle (region, i, &rect);
|
||||||
wl_surface_damage (impl->surface,
|
wl_surface_damage (impl->surface,
|
||||||
rect.x, rect.y, rect.width, rect.height);
|
rect.x, rect.y, rect.width, rect.height);
|
||||||
wl_surface_commit(impl->surface);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_gdk_window_process_updates_recurse (window, region);
|
wl_surface_commit (impl->surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
Loading…
Reference in New Issue
Block a user