From 82f5a127522e48ff7ff78400eadbce0a5a362064 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Sandmann=20Pedersen?= Date: Wed, 16 Mar 2005 21:25:43 +0000 Subject: [PATCH] =?UTF-8?q?Wed=20Mar=2016=2016:17:43=202005=20S=C3=B8ren?= =?UTF-8?q?=20Sandmann=20=20Only=20validate=20the=20s?= =?UTF-8?q?ource=20if=20it=20is=20a=20viewable=20window.=20Stops=20the=20c?= =?UTF-8?q?ursor=20=20=20=20=20flickering=20when=20it=20is=20above=20an=20?= =?UTF-8?q?unviewable=20window.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- miext/damage/damage.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/miext/damage/damage.c b/miext/damage/damage.c index 0ba4f251f..b15b5b31c 100755 --- a/miext/damage/damage.c +++ b/miext/damage/damage.c @@ -742,9 +742,13 @@ damageCopyArea(DrawablePtr pSrc, /* The driver will only call SourceValidate() when pSrc != pDst, * but the software sprite (misprite.c) always need to know when a * drawable is copied so it can remove the sprite. See #1030. */ - if ((pSrc == pDst) && pSrc->pScreen->SourceValidate) - (*pSrc->pScreen->SourceValidate) (pSrc, srcx, srcy, width, height); - + if ((pSrc == pDst) && pSrc->pScreen->SourceValidate && + pSrc->type == DRAWABLE_WINDOW && + ((WindowPtr)pSrc)->viewable) + { + (*pSrc->pScreen->SourceValidate) (pSrc, srcx, srcy, width, height); + } + if (checkGCDamage (pDst, pGC)) { BoxRec box;