dwrite: Always return non-zero metrics for strikethrough/underline thickness.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
f94447526a
commit
137030bf77
|
@ -1204,6 +1204,18 @@ void opentype_get_font_metrics(IDWriteFontFileStream *stream, DWRITE_FONT_FACE_T
|
|||
metrics->underlineThickness = GET_BE_WORD(tt_post->underlineThickness);
|
||||
}
|
||||
|
||||
/* use any of thickness values if another one is zero, if both are zero use estimate */
|
||||
if (metrics->strikethroughThickness || metrics->underlineThickness) {
|
||||
if (!metrics->strikethroughThickness)
|
||||
metrics->strikethroughThickness = metrics->underlineThickness;
|
||||
if (!metrics->underlineThickness)
|
||||
metrics->underlineThickness = metrics->strikethroughThickness;
|
||||
}
|
||||
else {
|
||||
metrics->strikethroughThickness = metrics->designUnitsPerEm / 14;
|
||||
metrics->underlineThickness = metrics->designUnitsPerEm / 14;
|
||||
}
|
||||
|
||||
/* estimate missing metrics */
|
||||
if (metrics->xHeight == 0)
|
||||
metrics->xHeight = metrics->designUnitsPerEm / 2;
|
||||
|
|
|
@ -1576,12 +1576,10 @@ static void check_font_metrics(const WCHAR *nameW, const DWRITE_FONT_METRICS *go
|
|||
wine_dbgstr_w(nameW), got->designUnitsPerEm, expected->designUnitsPerEm);
|
||||
ok(got->underlinePosition == expected->underlinePosition, "font %s: underlinePosition %d, expected %d\n",
|
||||
wine_dbgstr_w(nameW), got->underlinePosition, expected->underlinePosition);
|
||||
todo_wine_if(got->underlineThickness == 0)
|
||||
ok(got->underlineThickness == expected->underlineThickness, "font %s: underlineThickness %u, "
|
||||
"expected %u\n", wine_dbgstr_w(nameW), got->underlineThickness, expected->underlineThickness);
|
||||
ok(got->strikethroughPosition == expected->strikethroughPosition, "font %s: strikethroughPosition %d, expected %d\n",
|
||||
wine_dbgstr_w(nameW), got->strikethroughPosition, expected->strikethroughPosition);
|
||||
todo_wine_if(got->strikethroughThickness == 0)
|
||||
ok(got->strikethroughThickness == expected->strikethroughThickness, "font %s: strikethroughThickness %u, "
|
||||
"expected %u\n", wine_dbgstr_w(nameW), got->strikethroughThickness, expected->strikethroughThickness);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue