gtk2/gdk/x11
Jasper St. Pierre d48adf9cee gdkwindow: Remove the internal cairo_surface used for out-of-band painting
Traditionally, the way painting was done in GTK+ was with the
"expose-event" handler, where you'd use GDK methods to do drawing on
your surface. In GTK+ 2.24, we added cairo support with gdk_cairo_create,
so you could paint your graphics with cairo.

Since then, we've added client-side windows, double buffering, the paint
clock, and various other enhancements, and the modern way to do drawing
is to connect to the "draw" signal on GtkWidget, which hands you a
cairo_t. To do double-buffering, the cairo_t we hand you is actually on
a secret surface, not the actual backing store of the window, and when
the draw handler completes we blit it into the main backing store
atomically.

The code to do this is with the APIs gdk_window_begin_paint_region,
which creates the temporary surface, and gdk_window_end_paint which
blits it back into the backing store. GTK+'s implementation of the
"draw" signal uses these APIs.

We've always sort-of supported people calling gdk_cairo_create
"outside" of a begin_paint / end_paint like old times, but then you're
not getting the benefit of double-buffering, and it's harder for GDK to
optimize.

Additionally, newer backends like Mir and Wayland can't actually support
this model, since they're based on double-buffering and swapping buffers
at various points in time. If we hand you a random cairo_t, we have no
idea when is a good time to swap.

Remove support for this.

This is technically a GDK API break: a warning is added in cases where
gdk_cairo_create is called outside of a paint cycle, and the returned
surface is a dummy that won't ever be composited back onto the main
surface. Testing with complex applications like Ardour didn't produce
any warnings.
2014-06-20 20:41:54 -04:00
..
gdkapplaunchcontext-x11.c docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
gdkasync.c all: Name more idles and timeouts 2014-03-26 20:09:30 -04:00
gdkasync.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcursor-x11.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkdevice-core-x11.c gdk: Convert mouse position to doubles, add new getters 2013-07-03 14:39:25 +02:00
gdkdevice-xi2.c x11: Unset GdkX11DeviceXI2 scroll valuators on device change 2013-11-22 12:49:32 +01:00
gdkdevicemanager-core-x11.c x11: Handle XINotifyPassiveGrab/Ungrab in focus events 2013-12-04 21:22:23 -05:00
gdkdevicemanager-x11.c docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
gdkdevicemanager-xi2.c x11: Handle all XI2 crossing mode values in switch 2013-12-04 21:22:23 -05:00
gdkdevicemanagerprivate-core.h x11: Avoid spurious focus events on grabs 2012-03-07 15:35:21 +01:00
gdkdisplay-x11.c Fix font size when gdk_x11_display_set_window_scale() is used 2014-03-06 23:20:00 -05:00
gdkdisplay-x11.h x11: Remove motif dnd leftovers 2013-06-13 15:31:35 +02:00
gdkdisplaymanager-x11.c displaymanager: Remove GInitable implementation 2013-05-02 16:17:30 +02:00
gdkdnd-x11.c docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
gdkeventsource.c Handle recursion from motion event handlers 2013-11-11 23:17:14 -05:00
gdkeventsource.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkeventtranslator.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkeventtranslator.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkgeometry-x11.c x11: Initial cut at supporting window scaling for X11 2013-07-03 14:34:14 +02:00
gdkkeys-x11.c docs: use apostrophe in *'ll 2014-02-07 13:35:54 -05:00
gdkmain-x11.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkprivate-x11.h x11: Unset GdkX11DeviceXI2 scroll valuators on device change 2013-11-22 12:49:32 +01:00
gdkproperty-x11.c Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkscreen-x11.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkscreen-x11.h x11: keep track of the screen pixel size by calculating the bounding box of monitors 2013-11-25 17:19:46 +01:00
gdkselection-x11.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdksettings.c Add a setting for dialog headers 2014-01-17 17:52:08 -05:00
gdktestutils-x11.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkvisual-x11.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
gdkwindow-x11.c gdkwindow: Remove the internal cairo_surface used for out-of-band painting 2014-06-20 20:41:54 -04:00
gdkwindow-x11.h Some struct repacking 2014-01-12 22:25:19 -05:00
gdkx11applaunchcontext.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11cursor.h docs: don't use <type> tags 2014-01-28 00:21:26 -05:00
gdkx11device-core.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11device.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkx11devicemanager-core.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager-xi2.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager-xi.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11devicemanager.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkx11display.h x11: Add gdk_x11_display_set_window_scale 2013-08-20 11:15:08 +02:00
gdkx11displaymanager.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11dnd.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11keys.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11property.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkx11screen.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkx11selection.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11utils.h Drop GDK_MULTIHEAD_SAFE 2014-06-11 21:55:15 -04:00
gdkx11visual.h Add GDK_AVAILABLE_IN_ALL annotations in gdk 2013-05-05 15:38:46 -04:00
gdkx11window.h docs: don't use <type> tags 2014-01-28 00:21:26 -05:00
gdkx.h Require XInput2.h in X11 backend 2012-03-02 12:52:12 +00:00
gdkxftdefaults.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkxid.c docs: use Returns: consistently 2014-02-19 18:56:05 -05:00
Makefile.am New visibility handling in gdk 2013-05-05 15:38:48 -04:00
MwmUtil.h Change FSF Address 2012-02-27 17:06:11 +00:00
xsettings-client.c Fix font size when gdk_x11_display_set_window_scale() is used 2014-03-06 23:20:00 -05:00
xsettings-client.h Fix font size when gdk_x11_display_set_window_scale() is used 2014-03-06 23:20:00 -05:00