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
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
fallback-c89.c
gdk.c
gdk.h
gdk.symbols Add new fullscreen symbols 2013-02-01 22:54:19 -05:00
gdkapplaunchcontext.c
gdkapplaunchcontext.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkapplaunchcontextprivate.h
gdkcairo.c
gdkcairo.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkcolor.c
gdkcolor.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkconfig.h.win32
gdkcursor.c
gdkcursor.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkcursorprivate.h
gdkdeprecated.c
gdkdevice.c
gdkdevice.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdevicemanager.c
gdkdevicemanager.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdevicemanagerprivate.h
gdkdeviceprivate.h
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
gdkdisplaymanager.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdisplaymanagerprivate.h
gdkdisplayprivate.h
gdkdnd.c
gdkdnd.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkdndprivate.h
gdkenumtypes.c.template
gdkenumtypes.h.template
gdkevents.c
gdkevents.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkglobals.c
gdkinternals.h gdkwindow: Allow gdk_window_set_opacity on non-native children 2013-02-07 11:11:37 +01:00
gdkintl.h
gdkkeynames.c
gdkkeys.c
gdkkeys.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkkeysprivate.h
gdkkeysyms-compat.h
gdkkeysyms-update.pl gdk: Fix typo in gdkkeysyms-update.pl 2013-01-18 17:26:28 +01:00
gdkkeysyms.h
gdkkeyuni.c
gdkmain.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkmarshalers.list
gdkoffscreenwindow.c
gdkpango.c
gdkpango.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkpixbuf-drawable.c
gdkpixbuf.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkprivate.h
gdkproperty.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkrectangle.c
gdkrectangle.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkrgba.c
gdkrgba.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkscreen.c
gdkscreen.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkscreenprivate.h
gdkselection.c
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
gdkvisual.c
gdkvisual.h Move single-include guards inside include guards 2012-12-28 09:57:56 -05:00
gdkvisualprivate.h
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
gdkwindowimpl.h gdk: add gdk_window_set_fullscreen_mode() 2013-01-25 13:16:56 +01:00
gdkx.h
gen-keyname-table.pl
keyname-table.h
keynames-translate.txt
keynames.txt
Makefile.am Use hash-based conversions for XSETTINGS names. 2013-01-27 01:08:25 +01:00
makefile.msc