summaryrefslogtreecommitdiff
path: root/vcl/generic/glyphs
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/generic/glyphs')
-rw-r--r--vcl/generic/glyphs/gcach_layout.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/vcl/generic/glyphs/gcach_layout.cxx b/vcl/generic/glyphs/gcach_layout.cxx
index d04cebe04f22..cd6b96cb6a49 100644
--- a/vcl/generic/glyphs/gcach_layout.cxx
+++ b/vcl/generic/glyphs/gcach_layout.cxx
@@ -187,6 +187,7 @@ public:
using LEFontInstance::mapCharToGlyph;
virtual LEGlyphID mapCharToGlyph( LEUnicode32 ch ) const;
+ virtual LEGlyphID mapCharToGlyph( LEUnicode32 ch, const LECharMapper *mapper, le_bool filterZeroWidth ) const;
virtual le_int32 getAscent() const;
virtual le_int32 getDescent() const;
@@ -263,6 +264,18 @@ LEGlyphID IcuFontFromServerFont::mapCharToGlyph( LEUnicode32 ch ) const
return nGlyphIndex;
}
+LEGlyphID IcuFontFromServerFont::mapCharToGlyph( LEUnicode32 ch, const LECharMapper *mapper, le_bool /*filterZeroWidth*/ ) const
+{
+ /*
+ fdo#31821, icu has...
+ >│93 if (filterZeroWidth && (mappedChar == 0x200C || mappedChar == 0x200D)) { │
+ │94 return canDisplay(mappedChar) ? 0x0001 : 0xFFFF; │
+ │95 }
+ so only the Indic layouts allow the joiners to get mapped to glyphs
+ */
+ return LEFontInstance::mapCharToGlyph( ch, mapper, false );
+}
+
// -----------------------------------------------------------------------
le_int32 IcuFontFromServerFont::getAscent() const