Commit 47ee5f4b authored by Kristian Høgsberg's avatar Kristian Høgsberg
Browse files

Add call to SourceValidate() when pDst == pSrc, so misprite.c get a chance

    to remove the sprite before the area is copied. The drivers handle pDst
    != pSrc (#1030).
parent 09d0056b
......@@ -728,6 +728,12 @@ damageCopyArea(DrawablePtr pSrc,
RegionPtr ret;
DAMAGE_GC_OP_PROLOGUE(pGC, pDst);
/* 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 (checkGCDamage (pDst, pGC))
{
BoxRec box;
......@@ -762,6 +768,13 @@ damageCopyPlane(DrawablePtr pSrc,
{
RegionPtr ret;
DAMAGE_GC_OP_PROLOGUE(pGC, pDst);
/* 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 (checkGCDamage (pDst, pGC))
{
BoxRec box;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment