summaryrefslogtreecommitdiff
path: root/uxa
diff options
context:
space:
mode:
Diffstat (limited to 'uxa')
-rw-r--r--uxa/uxa.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/uxa/uxa.c b/uxa/uxa.c
index 5b6f537e..102717de 100644
--- a/uxa/uxa.c
+++ b/uxa/uxa.c
@@ -237,9 +237,16 @@ uxa_validate_gc (GCPtr pGC, unsigned long changes, DrawablePtr pDrawable)
changes &= ~GCTile;
}
- uxa_prepare_access_gc(pGC);
- fbValidateGC (pGC, changes, pDrawable);
- uxa_finish_access_gc(pGC);
+ if (changes & GCStipple && pGC->stipple) {
+ /* We can't inline stipple handling like we do for GCTile because it sets
+ * fbgc privates.
+ */
+ uxa_prepare_access(&pGC->stipple->drawable, UXA_ACCESS_RW);
+ fbValidateGC (pGC, changes, pDrawable);
+ uxa_finish_access(&pGC->stipple->drawable);
+ } else {
+ fbValidateGC (pGC, changes, pDrawable);
+ }
pGC->ops = (GCOps *) &uxa_ops;
}