gtk2/gdk
Alexander Larsson 4d3c77f920 gdkwindow: Allow gdk_window_set_opacity on non-native children
We now store the current opacity for all windows. For native windows
we just call into the native implementation whenever the opacity changes.
However, for non-native windows we implement opacity by pushing a
second implicit paint that "stacks" on the existing one, acting as
an opacity group while rendering the window and its children.

This works well in general, although any native child windows will of
course not be opaque. However, there is no way to implement
implicit paint flushing (i.e. draw the currently drawn double buffer
to the window in order to allow direct drawing to the window).
We can't flush in the stacked implicit paint case because there
is no way to get the right drawing behaviour when drawing directly
to the window. We *must* draw to the opacity group to get the right
behaviour.

We currently flush if:
* A widget disables double buffering
* You call move/resize/scroll a window and it has non-native children
  during the expose handler

In case this happens we warn and flush the outermost group, so there may
be drawing errors.

https://bugzilla.gnome.org/show_bug.cgi?id=687842
2013-02-07 11:11:37 +01:00
..
broadway broadway: Make /dev/shm names nicer 2013-01-10 23:59:23 +01:00
quartz quartz: retain content view when switching over toplevel. 2013-01-17 14:45:33 +01:00
tests Add more tests for GdkRGBA parsing 2012-01-09 00:31:20 -05:00
wayland wayland: React to G_IO_ERR and G_IO_HUP on the wayland socket 2013-02-06 18:08:58 +00:00
win32 Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
x11 gdkdevicemanager-x11: Request XI2.3 2013-01-28 12:53:39 -05:00
abicheck.sh
COPYING Change FSF Address 2012-02-27 17:06:11 +00:00
fallback-c89.c Bug 676087-configure.ac: isnan() and isinf() are macros, not functions 2012-05-16 23:55:40 -04:00
gdk.c Bump GLib dependency to 2.35 2012-11-04 13:01:38 -05:00
gdk.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdk.symbols Add new fullscreen symbols 2013-02-01 22:54:19 -05:00
gdkapplaunchcontext.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkapplaunchcontext.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkapplaunchcontextprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcairo.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcairo.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkcolor.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcolor.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkconfig.h.win32 Update gdk/gdkconfig.h.win32 2011-12-30 16:21:38 +08:00
gdkcursor.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkcursor.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkcursorprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkdeprecated.c gdk: Ignore headers for declared functions 2012-10-06 15:55:30 -04:00
gdkdevice.c GdkDevice: Fix an inverted assertion 2012-06-20 22:44:32 -04:00
gdkdevice.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdevicemanager.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkdevicemanager.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdevicemanagerprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkdeviceprivate.h Add _gdk_device_get_axis_info 2012-04-03 11:37:41 +02:00
gdkdisplay.c gdk: strengthen touch crossing event synthesizing on programmatical crossings 2013-01-15 17:48:56 +01:00
gdkdisplay.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdisplaymanager.c wayland: Prefer X11 backend over Wayland 2012-04-16 18:53:54 +02:00
gdkdisplaymanager.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdisplaymanagerprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkdisplayprivate.h gdk: Remove GdkDisplay->ignore_core_pointer 2012-04-03 11:37:42 +02:00
gdkdnd.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkdnd.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdndprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkenumtypes.c.template
gdkenumtypes.h.template
gdkevents.c gdk: add missing annotations to gdk_event_get_scroll_deltas 2012-06-10 22:21:32 +02:00
gdkevents.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkglobals.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkinternals.h gdkwindow: Allow gdk_window_set_opacity on non-native children 2013-02-07 11:11:37 +01:00
gdkintl.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkkeynames.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkkeys.c gdk: fix GI annotation and document for {map,add}_virtual_modifiers 2012-09-10 15:03:25 +02:00
gdkkeys.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkkeysprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkkeysyms-compat.h Regenerate the gdk/gdkkeysyms.h and gdk/gdkkeysyms-compat.h files 2012-04-25 20:29:36 -04:00
gdkkeysyms-update.pl gdk: Fix typo in gdkkeysyms-update.pl 2013-01-18 17:26:28 +01:00
gdkkeysyms.h Regenerate the gdk/gdkkeysyms.h and gdk/gdkkeysyms-compat.h files 2012-04-25 20:29:36 -04:00
gdkkeyuni.c gdk: Ignore headers for declared functions 2012-10-06 15:55:30 -04:00
gdkmain.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkmarshalers.list
gdkoffscreenwindow.c gdk: fix the build 2012-05-15 13:27:21 -04:00
gdkpango.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkpango.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkpixbuf-drawable.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkpixbuf.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkproperty.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkrectangle.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkrectangle.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkrgba.c docs: Escape bare '#' in GdkRGBA string definitions 2012-05-20 13:45:05 +01:00
gdkrgba.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkscreen.c gdk: Ignore headers for declared functions 2012-10-06 15:55:30 -04:00
gdkscreen.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkscreenprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkselection.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkselection.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdktestutils.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkthreads.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdktypes.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkversionmacros.h.in Add GDK_VERSION_3_8 2012-10-23 17:36:17 -04:00
gdkvisual.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkvisual.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkvisualprivate.h Change FSF Address 2012-02-27 17:06:11 +00:00
gdkwindow.c gdkwindow: Allow gdk_window_set_opacity on non-native children 2013-02-07 11:11:37 +01:00
gdkwindow.h gdk: add gdk_window_set_fullscreen_mode() 2013-01-25 13:16:56 +01:00
gdkwindowimpl.c Change FSF Address 2012-02-27 17:06:11 +00:00
gdkwindowimpl.h gdk: add gdk_window_set_fullscreen_mode() 2013-01-25 13:16:56 +01:00
gdkx.h Change FSF Address 2012-02-27 17:06:11 +00:00
gen-keyname-table.pl gdk: Make gen-keyname-table.pl work again 2011-10-26 10:36:43 +01:00
keyname-table.h gdk: Update translator comment for "keyboard label" 2012-03-15 16:05:00 +01:00
keynames-translate.txt gdk: Translate keyboard brightness keys 2011-10-26 10:36:43 +01:00
keynames.txt
Makefile.am Use hash-based conversions for XSETTINGS names. 2013-01-27 01:08:25 +01:00
makefile.msc