diff options
author | Caolán McNamara <caolanm@redhat.com> | 2012-07-14 21:41:11 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2012-07-15 08:25:28 +0100 |
commit | d7e5f9b315b5cbe6195504a4bb94b99e6f1b7d99 (patch) | |
tree | 9d503cf55e91a421bf62717af9be785ea1f21ec6 /vcl/generic/glyphs | |
parent | f4d20a400b5c06959fd5a362a350bb4d9a6e4bd1 (diff) |
Resolves: fdo#31821 always process ZW[N]J in the font regardless of script
Change-Id: Icd309199b393d89e202fa9d1aba1a1ace51c6c6e
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 |