summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
authorEric Anholt <anholt@freebsd.org>2006-03-10 21:32:34 +0000
committerEric Anholt <anholt@freebsd.org>2006-03-10 21:32:34 +0000
commit5b1a7b478f072f56e836f2d4c0fbc1985842e2bb (patch)
treeefa1e7d2fdfc7dcb3da1f32b5c68ba82f016e9d1 /exa
parentffdbb547becc71f1cfdd035d0d6c71539f185fb1 (diff)
Move the exaDrawableDirty in exaPrepareAccess to exaFinishAccess, which is
after the drawing is done. Previously, a failed PrepareAccess could have migrated and cleared the dirty flag before the damage was ever done.
Diffstat (limited to 'exa')
-rw-r--r--exa/exa.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/exa/exa.c b/exa/exa.c
index 7d72954c5..ffb80dd37 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -230,8 +230,6 @@ exaPrepareAccess(DrawablePtr pDrawable, int index)
pPixmap = exaGetDrawablePixmap (pDrawable);
- if (index == EXA_PREPARE_DEST)
- exaDrawableDirty (pDrawable);
if (exaPixmapIsOffscreen (pPixmap))
exaWaitSync (pDrawable->pScreen);
else
@@ -255,6 +253,9 @@ exaFinishAccess(DrawablePtr pDrawable, int index)
ExaScreenPriv (pScreen);
PixmapPtr pPixmap;
+ if (index == EXA_PREPARE_DEST)
+ exaDrawableDirty (pDrawable);
+
if (pExaScr->info->FinishAccess == NULL)
return;