From 6e356742e3a7758182b722b73dcf432573ebc4d8 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Tue, 20 Dec 2016 12:37:03 +0300 Subject: [PATCH] dwrite: Improve strikethrough and underline thickness extraction logic. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/dwrite/opentype.c | 13 +++---------- dlls/dwrite/tests/font.c | 12 +++--------- 2 files changed, 6 insertions(+), 19 deletions(-) diff --git a/dlls/dwrite/opentype.c b/dlls/dwrite/opentype.c index c6662757c42..c8298138b7b 100644 --- a/dlls/dwrite/opentype.c +++ b/dlls/dwrite/opentype.c @@ -1243,17 +1243,10 @@ void opentype_get_font_metrics(struct file_stream_desc *stream_desc, DWRITE_FONT 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; + if (metrics->underlineThickness == 0) metrics->underlineThickness = metrics->designUnitsPerEm / 14; - } + if (metrics->strikethroughThickness == 0) + metrics->strikethroughThickness = metrics->underlineThickness; /* estimate missing metrics */ if (metrics->xHeight == 0) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index eb47a059a59..ba9866af276 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -1725,16 +1725,10 @@ static void get_expected_font_metrics(IDWriteFontFace *fontface, DWRITE_FONT_MET metrics->underlineThickness = GET_BE_WORD(tt_post->underlineThickness); } - 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; + if (metrics->underlineThickness == 0) metrics->underlineThickness = metrics->designUnitsPerEm / 14; - } + if (metrics->strikethroughThickness == 0) + metrics->strikethroughThickness = metrics->underlineThickness; if (tt_os2) IDWriteFontFace_ReleaseFontTable(fontface, os2_context); -- 2.11.4.GIT