diff --git a/exa/exa_render.c b/exa/exa_render.c index f770a154a..24bbe48a9 100644 --- a/exa/exa_render.c +++ b/exa/exa_render.c @@ -642,8 +642,16 @@ exaGlyphs (CARD8 op, if (glyphs[i]->info.height > maxheight) maxheight = glyphs[i]->info.height; } - if (maxwidth == 0 || maxheight == 0) + if (maxwidth == 0 || maxheight == 0) { + while (n--) + { + glyph = *glyphs++; + x += glyph->info.xOff; + y += glyph->info.yOff; + } + list++; continue; + } /* Get a scratch pixmap to wrap the original glyph data */ pScratchPixmap = GetScratchPixmapHeader (pScreen, glyphs[0]->info.width, diff --git a/hw/xfree86/exa/exa_render.c b/hw/xfree86/exa/exa_render.c index f770a154a..24bbe48a9 100644 --- a/hw/xfree86/exa/exa_render.c +++ b/hw/xfree86/exa/exa_render.c @@ -642,8 +642,16 @@ exaGlyphs (CARD8 op, if (glyphs[i]->info.height > maxheight) maxheight = glyphs[i]->info.height; } - if (maxwidth == 0 || maxheight == 0) + if (maxwidth == 0 || maxheight == 0) { + while (n--) + { + glyph = *glyphs++; + x += glyph->info.xOff; + y += glyph->info.yOff; + } + list++; continue; + } /* Get a scratch pixmap to wrap the original glyph data */ pScratchPixmap = GetScratchPixmapHeader (pScreen, glyphs[0]->info.width, diff --git a/hw/xfree86/exa/exapict.c b/hw/xfree86/exa/exapict.c index f770a154a..24bbe48a9 100644 --- a/hw/xfree86/exa/exapict.c +++ b/hw/xfree86/exa/exapict.c @@ -642,8 +642,16 @@ exaGlyphs (CARD8 op, if (glyphs[i]->info.height > maxheight) maxheight = glyphs[i]->info.height; } - if (maxwidth == 0 || maxheight == 0) + if (maxwidth == 0 || maxheight == 0) { + while (n--) + { + glyph = *glyphs++; + x += glyph->info.xOff; + y += glyph->info.yOff; + } + list++; continue; + } /* Get a scratch pixmap to wrap the original glyph data */ pScratchPixmap = GetScratchPixmapHeader (pScreen, glyphs[0]->info.width,