diff --git a/exa/exa_render.c b/exa/exa_render.c index 75108a75c..a442987fe 100644 --- a/exa/exa_render.c +++ b/exa/exa_render.c @@ -995,15 +995,17 @@ exaGlyphs (CARD8 op, * First we try to use UploadToScreen, if we can, then we fall back * to a plain exaCopyArea in case of failure. */ - if (!pExaScr->info->UploadToScreen || - !exaPixmapIsOffscreen(pPixmap) || - !(*pExaScr->info->UploadToScreen) (pPixmap, 0, 0, + if (pExaScr->info->UploadToScreen && + exaPixmapIsOffscreen(pPixmap) && + (*pExaScr->info->UploadToScreen) (pPixmap, 0, 0, glyph->info.width, glyph->info.height, glyphdata, PixmapBytePad(glyph->info.width, list->format->depth))) { + exaMarkSync (pScreen); + } else { /* Set up the scratch pixmap/GC for doing a CopyArea. */ if (pScratchPixmap == NULL) { /* Get a scratch pixmap to wrap the original glyph data */