[Libreoffice-commits] core.git: vcl/win
Tor Lillqvist
tml at collabora.com
Wed Mar 16 17:33:04 UTC 2016
vcl/win/gdi/winlayout.cxx | 7 +++++++
1 file changed, 7 insertions(+)
New commits:
commit e3d0e8069e3bd82831b0070f70052f2202180192
Author: Tor Lillqvist <tml at collabora.com>
Date: Wed Mar 16 16:51:09 2016 +0200
tdf#97319: Give up on caching non-BMP glyphs
I can't figure out why successive non-BMP glyphs in the bugdoc get
drawn on top of each others. So bail out...
Change-Id: I9c6241916347ec31d616e5cbf00bf3b1869edba2
diff --git a/vcl/win/gdi/winlayout.cxx b/vcl/win/gdi/winlayout.cxx
index fa16339..f4f8d94 100644
--- a/vcl/win/gdi/winlayout.cxx
+++ b/vcl/win/gdi/winlayout.cxx
@@ -730,7 +730,10 @@ bool SimpleWinLayout::LayoutText( ImplLayoutArgs& rArgs )
if( bSurrogate )
nCharCode = 0x10000 + ((pCodes[0] - 0xD800) << 10) + (pCodes[1] - 0xDC00);
else // or fall back to a replacement character
+ {
+ // FIXME: Surely this is an error situation that should not happen?
nCharCode = '?';
+ }
}
// get the advance width for the current UTF-32 code point
@@ -1513,8 +1516,12 @@ bool SimpleWinLayout::CacheGlyphs(SalGraphics& rGraphics) const
int nCodePoint;
if (i < mnGlyphCount-1 && rtl::isHighSurrogate(mpOutGlyphs[i]) && rtl::isLowSurrogate(mpOutGlyphs[i+1]))
{
+#if 1
+ return false;
+#else
nCodePoint = rtl::combineSurrogates(mpOutGlyphs[i], mpOutGlyphs[i+1]);
i++;
+#endif
}
else
{
More information about the Libreoffice-commits
mailing list