forked from AuroraMiddleware/gtk
4d3c77f920
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 |
||
---|---|---|
.. | ||
broadway | ||
quartz | ||
tests | ||
wayland | ||
win32 | ||
x11 | ||
abicheck.sh | ||
COPYING | ||
fallback-c89.c | ||
gdk.c | ||
gdk.h | ||
gdk.symbols | ||
gdkapplaunchcontext.c | ||
gdkapplaunchcontext.h | ||
gdkapplaunchcontextprivate.h | ||
gdkcairo.c | ||
gdkcairo.h | ||
gdkcolor.c | ||
gdkcolor.h | ||
gdkconfig.h.win32 | ||
gdkcursor.c | ||
gdkcursor.h | ||
gdkcursorprivate.h | ||
gdkdeprecated.c | ||
gdkdevice.c | ||
gdkdevice.h | ||
gdkdevicemanager.c | ||
gdkdevicemanager.h | ||
gdkdevicemanagerprivate.h | ||
gdkdeviceprivate.h | ||
gdkdisplay.c | ||
gdkdisplay.h | ||
gdkdisplaymanager.c | ||
gdkdisplaymanager.h | ||
gdkdisplaymanagerprivate.h | ||
gdkdisplayprivate.h | ||
gdkdnd.c | ||
gdkdnd.h | ||
gdkdndprivate.h | ||
gdkenumtypes.c.template | ||
gdkenumtypes.h.template | ||
gdkevents.c | ||
gdkevents.h | ||
gdkglobals.c | ||
gdkinternals.h | ||
gdkintl.h | ||
gdkkeynames.c | ||
gdkkeys.c | ||
gdkkeys.h | ||
gdkkeysprivate.h | ||
gdkkeysyms-compat.h | ||
gdkkeysyms-update.pl | ||
gdkkeysyms.h | ||
gdkkeyuni.c | ||
gdkmain.h | ||
gdkmarshalers.list | ||
gdkoffscreenwindow.c | ||
gdkpango.c | ||
gdkpango.h | ||
gdkpixbuf-drawable.c | ||
gdkpixbuf.h | ||
gdkprivate.h | ||
gdkproperty.h | ||
gdkrectangle.c | ||
gdkrectangle.h | ||
gdkrgba.c | ||
gdkrgba.h | ||
gdkscreen.c | ||
gdkscreen.h | ||
gdkscreenprivate.h | ||
gdkselection.c | ||
gdkselection.h | ||
gdktestutils.h | ||
gdkthreads.h | ||
gdktypes.h | ||
gdkversionmacros.h.in | ||
gdkvisual.c | ||
gdkvisual.h | ||
gdkvisualprivate.h | ||
gdkwindow.c | ||
gdkwindow.h | ||
gdkwindowimpl.c | ||
gdkwindowimpl.h | ||
gdkx.h | ||
gen-keyname-table.pl | ||
keyname-table.h | ||
keynames-translate.txt | ||
keynames.txt | ||
Makefile.am | ||
makefile.msc |