summaryrefslogtreecommitdiff
path: root/vcl/generic/glyphs
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2012-07-14 21:41:11 +0100
committerCaolán McNamara <caolanm@redhat.com>2012-07-15 08:25:28 +0100
commitd7e5f9b315b5cbe6195504a4bb94b99e6f1b7d99 (patch)
tree9d503cf55e91a421bf62717af9be785ea1f21ec6 /vcl/generic/glyphs
parentf4d20a400b5c06959fd5a362a350bb4d9a6e4bd1 (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.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