vcl/win/gdi/winlayout.cxx |    7 +++++++
 1 file changed, 7 insertions(+)

New commits:
commit e3d0e8069e3bd82831b0070f70052f2202180192
Author: Tor Lillqvist <t...@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
         {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to