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