diff --git a/ChangeLog b/ChangeLog index f7b179f19d..a84cb04cbb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-09-26 Matthias Clasen + + Bug 552956 – Should check composite extension version + + * gdk/x11/gdkdisplay-x11.c: Check that the version of the + composite extension is at least 0.4. + Patch by Owen Taylor + 2008-09-26 Matthias Clasen Bug 553803 – eventually call XCloseDevice on XOpenDevice results diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index d791975155..e48c16cb41 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -236,7 +236,17 @@ gdk_display_open (const gchar *display_name) #ifdef HAVE_XCOMPOSITE if (XCompositeQueryExtension (display_x11->xdisplay, &ignore, &ignore)) - display_x11->have_xcomposite = TRUE; + { + int major, minor; + + XCompositeQueryVersion (display_x11->xdisplay, &major, &minor); + + /* Prior to Composite version 0.4, composited windows clipped their + * parents, so you had to use IncludeInferiors to draw to the parent + * This isn't useful for our purposes, so require 0.4 + */ + display_x11->have_xcomposite = major > 0 || (major == 0 && minor >= 4); + } else #endif display_x11->have_xcomposite = FALSE;