xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Mon Mar 23 12:24:03 PDT 2009


 mi/misprite.c |   33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

New commits:
commit 4ab93f05664890ff6738ef1089bcd956ce3f06e9
Author: Adam Jackson <ajax at redhat.com>
Date:   Mon Mar 23 15:19:47 2009 -0400

    misprite: In SourceValidate, check that it's a Window first
    
    It almost never is.  However, you have _lots_ of input devices now, and
    walking them all on every Composite operation is not the cheapest thing
    in the world.

diff --git a/mi/misprite.c b/mi/misprite.c
index 1cf643a..7db4c48 100644
--- a/mi/misprite.c
+++ b/mi/misprite.c
@@ -422,23 +422,24 @@ miSpriteSourceValidate (DrawablePtr pDrawable, int x, int y, int width,
 
     SCREEN_PROLOGUE (pScreen, SourceValidate);
 
-    pScreenPriv = (miSpriteScreenPtr)dixLookupPrivate(&pScreen->devPrivates,
-						      miSpriteScreenKey);
-
-    for(pDev = inputInfo.devices; pDev; pDev = pDev->next)
+    if (pDrawable->type == DRAWABLE_WINDOW)
     {
-        if (DevHasCursor(pDev))
-        {
-            pCursorInfo = MISPRITE(pDev);
-            if (pDrawable->type == DRAWABLE_WINDOW && pCursorInfo->isUp &&
-                    pCursorInfo->pScreen == pScreen &&
-                    ORG_OVERLAP(&pCursorInfo->saved, pDrawable->x, pDrawable->y,
-                        x, y, width, height))
-            {
-                SPRITE_DEBUG (("SourceValidate remove\n"));
-                miSpriteRemoveCursor (pDev, pScreen);
-            }
-        }
+	pScreenPriv = dixLookupPrivate(&pScreen->devPrivates,miSpriteScreenKey);
+
+	for(pDev = inputInfo.devices; pDev; pDev = pDev->next)
+	{
+	    if (DevHasCursor(pDev))
+	    {
+		pCursorInfo = MISPRITE(pDev);
+		if (pCursorInfo->isUp && pCursorInfo->pScreen == pScreen &&
+		    ORG_OVERLAP(&pCursorInfo->saved, pDrawable->x, pDrawable->y,
+				x, y, width, height))
+		{
+		    SPRITE_DEBUG (("SourceValidate remove\n"));
+		    miSpriteRemoveCursor (pDev, pScreen);
+		}
+	    }
+	}
     }
 
     if (pScreen->SourceValidate)


More information about the xorg-commit mailing list