GNOME Bugzilla – Bug 725172
GdkWindow: fix redraws for backends that keep the same backing cairo surface
Last modified: 2014-02-25 23:05:05 UTC
See patches. Fixes Gtk+ windows getting stuck in mutter-wayland (and maybe weston --pixman too).
Created attachment 270326 [details] [review] pixbuf-demo: don't lock the window size What's the use of an animation demo, if you can interactively resize it and show off how cool is your window system handling updates?
Created attachment 270327 [details] [review] GdkWindow: fix redraws for backends that keep the same backing cairo surface If gdk_window_create_cairo_surface() returns a surface that was already used in the past as cairo surface (as it happens for toplevel gdkwayland windows, whose cairo surface is the shm image), setting a user data calls the destructor for the existing user data, which clears window->cairo_surface, effectively nullifying the effect of ref_cairo_surface(), which then returns NULL.
Review of attachment 270326 [details] [review]: sure
Created attachment 270333 [details] [review] Gdk: fix wrong user_data handling in resize_cairo_surface() Instead of destroying the surface in the backend if this is unable to resize, let the core code do it, and do it properly. Based on a patch by Benjamin Otte.
Attachment 270326 [details] pushed as d5196de - pixbuf-demo: don't lock the window size Attachment 270333 [details] pushed as ad2f96f - Gdk: fix wrong user_data handling in resize_cairo_surface()