usp10: Fix advance width when glyph is missing.
This fixes a regression introduced by 8d018d8d1d
.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=47327
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Aric Stewart <aric@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
9dabf7b013
commit
ac0c1d41d1
|
@ -2199,11 +2199,11 @@ static void test_ScriptPlace(HDC hdc)
|
|||
{
|
||||
ok(offset[i].du == 0, "[%d] expected 0, got %d\n", i, offset[i].du);
|
||||
ok(offset[i].dv == 0, "[%d] expected 0, got %d\n", i, offset[i].dv);
|
||||
todo_wine ok(widths[i] > tm.tmAveCharWidth, "[%d] expected greater than %d, got %d\n",
|
||||
ok(widths[i] > tm.tmAveCharWidth, "[%d] expected greater than %d, got %d\n",
|
||||
i, tm.tmAveCharWidth, widths[i]);
|
||||
total += widths[i];
|
||||
}
|
||||
todo_wine ok(total == sz.cx, "expected %d, got %d\n", sz.cx, total);
|
||||
ok(total == sz.cx, "expected %d, got %d\n", sz.cx, total);
|
||||
}
|
||||
else
|
||||
skip("Associated font is unavailable\n");
|
||||
|
|
|
@ -3434,9 +3434,27 @@ HRESULT WINAPI ScriptPlaceOpenType( HDC hdc, SCRIPT_CACHE *psc, SCRIPT_ANALYSIS
|
|||
if (FAILED(hr = ScriptGetCMap(hdc, psc, &pwGlyphs[i], 1, 0, &glyph))) return hr;
|
||||
}
|
||||
else
|
||||
{
|
||||
hr = S_OK;
|
||||
glyph = pwGlyphs[i];
|
||||
}
|
||||
|
||||
if (!get_cache_glyph_widths(psc, glyph, &abc))
|
||||
if (hr == S_FALSE)
|
||||
{
|
||||
if (!hdc) return E_PENDING;
|
||||
if (get_cache_pitch_family(psc) & TMPF_TRUETYPE)
|
||||
{
|
||||
if (!GetCharABCWidthsW(hdc, pwGlyphs[i], pwGlyphs[i], &abc)) return S_FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
INT width;
|
||||
if (!GetCharWidthW(hdc, pwGlyphs[i], pwGlyphs[i], &width)) return S_FALSE;
|
||||
abc.abcB = width;
|
||||
abc.abcA = abc.abcC = 0;
|
||||
}
|
||||
}
|
||||
else if (!get_cache_glyph_widths(psc, glyph, &abc))
|
||||
{
|
||||
if (!hdc) return E_PENDING;
|
||||
if (get_cache_pitch_family(psc) & TMPF_TRUETYPE)
|
||||
|
|
Loading…
Reference in New Issue