May I ask why you can't paint in the draw signal? GDK already tracks invalidated windows marked by exposes and gdk_window_invalidate_rect itself. It should be as efficient as drawing in an idle handler, and also cooperates with the paint clock, where we can be synchronized to a compositor's redraw cycle.
On Mon, Jun 23, 2014 at 8:53 PM, Krzysztof Kosiński <tweenk...@gmail.com> wrote: > 2014-06-21 3:00 GMT+02:00 Jasper St. Pierre <jstpie...@mecheye.net>: > > To better support Wayland with fewer copies and less drawing artifacts, > I've > > pushed some potentially breaking changes to GDK, namely around > > gdk_cairo_create and gdk_window_begin_paint_region. > > > > > https://git.gnome.org/browse/gtk+/commit/?id=d48adf9cee7e340acd7f8b9a5f9716695352b848 > > > https://git.gnome.org/browse/gtk+/commit/?id=be30e440c350f0f3e0f2572f7f3eab54ef96af0e > > > > With these changes, it is now illegal to call gdk_cairo_create outside > of a > > begin_paint / end_paint. This was always sketchy, and would never work on > > Wayland anyway. If your code does this, we will print a warning and > return a > > dummy surface which won't ever be composited back into the main surface. > > This will also break the GTK 3 version of Inkscape, which paints its > canvas in an idle handler, and the draw signal only marks areas for > redraw. However, it may be fixable by using the begin_paint APIs. > > Regards, Krzysztof > -- Jasper
_______________________________________________ gtk-devel-list mailing list gtk-devel-list@gnome.org https://mail.gnome.org/mailman/listinfo/gtk-devel-list