summaryrefslogtreecommitdiff
path: root/exa
diff options
context:
space:
mode:
Diffstat (limited to 'exa')
-rw-r--r--exa/exa_render.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/exa/exa_render.c b/exa/exa_render.c
index b21c5d724..2187af810 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -535,7 +535,8 @@ exaComposite(CARD8 op,
if (op == PictOpSrc)
{
if (pSrc->pDrawable->width == 1 &&
- pSrc->pDrawable->height == 1 && pSrc->repeat)
+ pSrc->pDrawable->height == 1 && pSrc->repeat &&
+ pSrc->repeatType == RepeatNormal)
{
ret = exaTryDriverSolidFill(pSrc, pDst, xSrc, ySrc, xDst, yDst,
width, height);
@@ -575,6 +576,8 @@ exaComposite(CARD8 op,
pMask->repeat = 0;
if (pExaScr->info->PrepareComposite &&
+ (!pSrc->repeat || pSrc->repeat == RepeatNormal) &&
+ (!pMask || !pMask->repeat || pMask->repeat == RepeatNormal) &&
!pSrc->alphaMap && (!pMask || !pMask->alphaMap) && !pDst->alphaMap)
{
ret = exaTryDriverComposite(op, pSrc, pMask, pDst, xSrc, ySrc, xMask,