vcl/source/font/fontmetric.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
New commits: commit 025b5f75c657ffd54f11209da9bc8a6ebdbcc81e Author: Mark Hung <mark...@gmail.com> Date: Tue Nov 14 20:26:03 2017 +0800 tdf#111717 consider CJK vertical writing for underline offset Textline offset was based on horizontal font metrics. In vertical writing for CJK fonts, use descent as its underline offset so that the line is drawn at the edge of the bounding box to prevent overlap the CJK glyphs. Change-Id: Iaa01bdf3cbb694dcf925975cde3f0f7ba7b97dac Reviewed-on: https://gerrit.libreoffice.org/44720 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Mark Hung <mark...@gmail.com> diff --git a/vcl/source/font/fontmetric.cxx b/vcl/source/font/fontmetric.cxx index cd23756f0f97..cd0b9f8557e9 100644 --- a/vcl/source/font/fontmetric.cxx +++ b/vcl/source/font/fontmetric.cxx @@ -282,7 +282,9 @@ void ImplFontMetricData::ImplInitTextLineSize( const OutputDevice* pDev ) if ( !n2LineDY2 ) n2LineDY2 = 1; - long nUnderlineOffset = mnDescent/2 + 1; + const vcl::Font& rFont ( pDev->GetFont() ); + bool bCJKVertical = MsLangId::isCJK(rFont.GetLanguage()) && rFont.IsVertical(); + long nUnderlineOffset = bCJKVertical ? mnDescent : (mnDescent/2 + 1); long nStrikeoutOffset = -((mnAscent - mnIntLeading) / 3); mnUnderlineSize = nLineHeight; @@ -306,6 +308,7 @@ void ImplFontMetricData::ImplInitTextLineSize( const OutputDevice* pDev ) else mnWUnderlineSize = ((nWCalcSize*50)+50) / 100; + // Don't assume that wavelines are never placed below the descent, because for most fonts the waveline // is drawn into the text mnWUnderlineOffset = nUnderlineOffset; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits