vcl/win/source/gdi/winlayout.cxx | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
New commits: commit dd8319479fe3863324c27407625fe5e6ba759f17 Author: Tor Lillqvist <t...@collabora.com> Date: Thu May 12 14:22:42 2016 +0300 tdf#99369: Try harder to bail out for non-horizontal text Look not only for fonts with rotated glyphs (where the first character of the face name is '@') but also for font objects with non-zero orientation or escapement in general. (cherry-picked from the commit 43c95611d2621d1f2f9d60b26c07aad25c62baed) Change-Id: Ia88d38010e52ada8193f2b8057d9f3250108e9f1 Reviewed-on: https://gerrit.libreoffice.org/24929 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: Jan Holesovsky <ke...@collabora.com> diff --git a/vcl/win/source/gdi/winlayout.cxx b/vcl/win/source/gdi/winlayout.cxx index 360a3d3..4dc79ea 100644 --- a/vcl/win/source/gdi/winlayout.cxx +++ b/vcl/win/source/gdi/winlayout.cxx @@ -370,17 +370,21 @@ bool ImplWinFontEntry::CacheGlyphToAtlas(bool bRealGlyphIndices, int nGlyphIndex pTxt->BindFont(hDC); - // Bail for vertical text. + // Bail for non-horizontal text. { wchar_t sFaceName[200]; int nFaceNameLen = GetTextFaceW(hDC, SAL_N_ELEMENTS(sFaceName), sFaceName); - SelectObject(hDC, hOrigFont); - DeleteDC(hDC); if (!nFaceNameLen) SAL_WARN("vcl.gdi", "GetTextFace failed: " << WindowsErrorString(GetLastError())); - if (sFaceName[0] == '@') + LOGFONTW aLogFont; + GetObjectW(rLayout.mhFont, sizeof(LOGFONTW), &aLogFont); + + SelectObject(hDC, hOrigFont); + DeleteDC(hDC); + + if (sFaceName[0] == '@' || aLogFont.lfOrientation != 0 || aLogFont.lfEscapement != 0) { pTxt->ReleaseFont(); return false; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits