diff options
Diffstat (limited to 'vcl/generic/glyphs')
-rw-r--r-- | vcl/generic/glyphs/gcach_layout.cxx | 13 |
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 |