From: Michel Dänzer <[email protected]>

CompositePicture also does it, but only after the damage layer is
unwrapped, so no damage is reported.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99220
Signed-off-by: Michel Dänzer <[email protected]>
---

For some reason, this causes an Xnest link failure without the
configure.ac change:

  CCLD     Xnest
../../composite/.libs/libcomposite.a(compalloc.o): In function `compNewPixmap':
.../../../composite/compalloc.c:590: undefined reference to 
`miCompositeSourceValidate'
collect2: error: ld returned 1 exit status

 composite/compalloc.c | 9 +++++++++
 configure.ac          | 2 +-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/composite/compalloc.c b/composite/compalloc.c
index 05ffc7e85..e27ba05e4 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -45,6 +45,7 @@
 #include <dix-config.h>
 #endif
 
+#include <mipict.h>
 #include "compint.h"
 
 static void
@@ -579,6 +580,14 @@ compNewPixmap(WindowPtr pWin, int x, int y, int w, int h)
                                                serverClient, &error);
 
         if (pSrcPicture && pDstPicture) {
+            /*
+             * Validating the source picture may trigger
+             * compWindowUpdateAutomatic for redirected siblings of this
+             * window. Within CompositePicture, damageComposite unwraps
+             * the damage layer before this happens. Validate the source
+             * here to make sure damage is reported correctly.
+             */
+            miCompositeSourceValidate(pSrcPicture);
             CompositePicture(PictOpSrc,
                              pSrcPicture,
                              NULL,
diff --git a/configure.ac b/configure.ac
index 95aa297da..30dd37eb8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1847,7 +1847,7 @@ if test "x$XNEST" = xyes; then
        if test "x$have_xnest" = xno; then
                AC_MSG_ERROR([Xnest build explicitly requested, but required 
modules not found.])
        fi
-       XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB 
$GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB  $DRI3_LIB $PRESENT_LIB 
$MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB 
$XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB $DIX_LIB $OS_LIB"
+       XNEST_LIBS="$FB_LIB $FIXES_LIB $MI_LIB $XEXT_LIB $DBE_LIB $RECORD_LIB 
$GLX_LIBS $RANDR_LIB $COMPOSITE_LIB $RENDER_LIB $DAMAGE_LIB  $DRI3_LIB 
$PRESENT_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB 
$XKB_LIB $XKB_STUB_LIB $MAIN_LIB $DIX_LIB $OS_LIB"
        XNEST_SYS_LIBS="$XNESTMODULES_LIBS $GLX_SYS_LIBS"
        AC_SUBST([XNEST_LIBS])
        AC_SUBST([XNEST_SYS_LIBS])
-- 
2.11.0

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to