usp10: Set fZeroWidth when replacing control characters with blanks.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2016-06-10 00:44:35 +02:00 committed by Alexandre Julliard
parent 96cc50e1d0
commit acf2d54fb3
2 changed files with 5 additions and 0 deletions

View File

@ -1727,6 +1727,8 @@ static void test_ScriptShape(HDC hdc)
ok(glyphs[0] == glyphs2[0] || ok(glyphs[0] == glyphs2[0] ||
broken(glyphs2[0] == blanks[j] && (blanks[j] < 0x10)), broken(glyphs2[0] == blanks[j] && (blanks[j] < 0x10)),
"%s: [%02x] expected %04x, got %04x\n", lf.lfFaceName, blanks[j], glyphs[0], glyphs2[0]); "%s: [%02x] expected %04x, got %04x\n", lf.lfFaceName, blanks[j], glyphs[0], glyphs2[0]);
ok(attrs[0].fZeroWidth || broken(!attrs[0].fZeroWidth && (blanks[j] < 0x10) /* Vista */),
"%s: [%02x] got unexpected fZeroWidth %#x.\n", lf.lfFaceName, blanks[j], attrs[0].fZeroWidth);
} }
if (oldfont) if (oldfont)
DeleteObject(SelectObject(hdc, oldfont)); DeleteObject(SelectObject(hdc, oldfont));

View File

@ -3186,7 +3186,10 @@ HRESULT WINAPI ScriptShapeOpenType( HDC hdc, SCRIPT_CACHE *psc,
{ {
if (pwcChars[idx] == 0x0009 || pwcChars[idx] == 0x000A || if (pwcChars[idx] == 0x0009 || pwcChars[idx] == 0x000A ||
pwcChars[idx] == 0x000D || pwcChars[idx] >= 0x001C) pwcChars[idx] == 0x000D || pwcChars[idx] >= 0x001C)
{
pwOutGlyphs[i] = ((ScriptCache *)*psc)->sfp.wgBlank; pwOutGlyphs[i] = ((ScriptCache *)*psc)->sfp.wgBlank;
pOutGlyphProps[i].sva.fZeroWidth = 1;
}
} }
} }
} }