[Xquartz-changes] xserver: Branch 'master' - 3 commits

Jeremy Huddleston jeremyhu at freedesktop.org
Thu Aug 4 22:54:31 PDT 2011


 composite/compalloc.c |   12 +++++-------
 configure.ac          |    4 ++--
 include/windowstr.h   |    1 +
 mi/miexpose.c         |    4 ++++
 4 files changed, 12 insertions(+), 9 deletions(-)

New commits:
commit 39bc81b60ddc9e495ff3b9bb3c3a6c39e547b43a
Author: Keith Packard <keithp at keithp.com>
Date:   Wed Aug 3 20:57:03 2011 -0700

    Version bumped to 1.10.99.902 (1.11 RC2)
    
    At the close of the 1.11 non-critical fixes window.
    
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/configure.ac b/configure.ac
index 2438825..4f4bcf2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.57)
-AC_INIT([xorg-server], 1.10.99.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2011-06-01"
+AC_INIT([xorg-server], 1.10.99.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2011-08-03"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE
commit 9504caf1c3243e3ab2eb7126bc2bb876a8f89918
Author: Ville Syrjälä <ville.syrjala at nokia.com>
Date:   Fri May 6 18:19:34 2011 +0300

    composite: Inhibit window background paint with manual subwindow redirection
    
    The composite extension spec says that window background painting
    should be inhibited when the subwindow redirection mode is set to
    manual.
    
    This eliminates the ugly flashing effect when compiz unredirects a
    fullscreen window.
    
    Signed-off-by: Ville Syrjälä <ville.syrjala at nokia.com>
    Reviewed-by: Owen Taylor <otaylor at fishsoup.net>
    Reviewed-by: Keith Packard <keithp at keithp.com>
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/composite/compalloc.c b/composite/compalloc.c
index 841b2dc..f00bf4e 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -434,6 +434,7 @@ compRedirectSubwindows (ClientPtr pClient, WindowPtr pWin, int update)
 	 * critical output
 	 */
 	DamageExtSetCritical (pClient, TRUE);
+	pWin->inhibitBGPaint = TRUE;
     }
     return Success;
 }
@@ -466,6 +467,7 @@ compFreeClientSubwindows (WindowPtr pWin, XID id)
 		 */
 		DamageExtSetCritical (pClient, FALSE);
 		csw->update = CompositeRedirectAutomatic;
+		pWin->inhibitBGPaint = FALSE;
 		if (pWin->mapped)
 		    (*pWin->drawable.pScreen->ClearToBackground)(pWin, 0, 0, 0, 0, TRUE);
 	    }
diff --git a/include/windowstr.h b/include/windowstr.h
index 4a7a0f4..222de31 100644
--- a/include/windowstr.h
+++ b/include/windowstr.h
@@ -169,6 +169,7 @@ typedef struct _Window {
 #endif
 #ifdef COMPOSITE
     unsigned		damagedDescendants:1;	/* some descendants are damaged */
+    unsigned		inhibitBGPaint:1;	/* paint the background? */
 #endif
 } WindowRec;
 
diff --git a/mi/miexpose.c b/mi/miexpose.c
index 94258b8..0f1ebe5 100644
--- a/mi/miexpose.c
+++ b/mi/miexpose.c
@@ -575,6 +575,10 @@ miPaintWindow(WindowPtr pWin, RegionPtr prgn, int what)
 	tile_x_off = pWin->drawable.x - draw_x_off;
 	tile_y_off = pWin->drawable.y - draw_y_off;
 	fill = pWin->background;
+#ifdef COMPOSITE
+	if (pWin->inhibitBGPaint)
+	    return;
+#endif
 	switch (pWin->backgroundState) {
 	case None:
 	    return;
commit f1d75f3b742231c4c09f13d7a22ed920014cb5ef
Author: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
Date:   Thu Jul 28 15:17:59 2011 -0700

    Revert "composite: Don't backfill non-MapWindow allocations"
    
    This reverts commit db8840600e8e21356241eb87395031388d9b54d2.
    
    It was an optimization for the resize case, but 193ecc8b453b22 made
    it so that no backfilling takes place on resize if left in.
    
    Signed-off-by: Pierre-Loup A. Griffais <pgriffais at nvidia.com>
    Reviewed-by: Adam Jackson <ajax at redhat.com>
    
    Conflicts:
    
    	composite/compalloc.c
    Signed-off-by: Keith Packard <keithp at keithp.com>

diff --git a/composite/compalloc.c b/composite/compalloc.c
index 5c27631..841b2dc 100644
--- a/composite/compalloc.c
+++ b/composite/compalloc.c
@@ -557,7 +557,7 @@ compUnredirectOneSubwindow (WindowPtr pParent, WindowPtr pWin)
 }
 
 static PixmapPtr
-compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
+compNewPixmap (WindowPtr pWin, int x, int y, int w, int h)
 {
     ScreenPtr	    pScreen = pWin->drawable.pScreen;
     WindowPtr	    pParent = pWin->parent;
@@ -572,10 +572,6 @@ compNewPixmap (WindowPtr pWin, int x, int y, int w, int h, Bool map)
     pPixmap->screen_x = x;
     pPixmap->screen_y = y;
 
-    /* resize allocations will update later in compCopyWindow, not here */
-    if (!map)
-	return pPixmap;
-
     if (pParent->drawable.depth == pWin->drawable.depth)
     {
 	GCPtr	pGC = GetScratchGC (pWin->drawable.depth, pScreen);
@@ -641,7 +637,7 @@ compAllocPixmap (WindowPtr pWin)
     int		    y = pWin->drawable.y - bw;
     int		    w = pWin->drawable.width + (bw << 1);
     int		    h = pWin->drawable.height + (bw << 1);
-    PixmapPtr	    pPixmap = compNewPixmap (pWin, x, y, w, h, TRUE);
+    PixmapPtr	    pPixmap = compNewPixmap (pWin, x, y, w, h);
     CompWindowPtr   cw = GetCompWindow (pWin);
 
     if (!pPixmap)
@@ -713,7 +709,7 @@ compReallocPixmap (WindowPtr pWin, int draw_x, int draw_y,
     pix_h = h + (bw << 1);
     if (pix_w != pOld->drawable.width || pix_h != pOld->drawable.height)
     {
-	pNew = compNewPixmap (pWin, pix_x, pix_y, pix_w, pix_h, FALSE);
+	pNew = compNewPixmap (pWin, pix_x, pix_y, pix_w, pix_h);
 	if (!pNew)
 	    return FALSE;
 	cw->pOldPixmap = pOld;


More information about the Xquartz-changes mailing list