diff options
author | Oliver Bolte <obo@openoffice.org> | 2007-01-25 09:59:59 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2007-01-25 09:59:59 +0000 |
commit | 82f76c7000fc9072ae66ff33f482eb83744902a5 (patch) | |
tree | 5727f618e83797bed6c137a1dd188d26247ab51e /vcl | |
parent | 0bab72515b7fa11aba079243f2097cab117b8a53 (diff) |
INTEGRATION: CWS vcl72 (1.40.68); FILE MERGED
2007/01/22 09:23:11 hdu 1.40.68.2: #i73485# clarify logical operations for ZW*J filtering
2007/01/16 11:59:08 hdu 1.40.68.1: #i73485# filter out ZW*J glyphs during display
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/glyphs/glyphcache.cxx | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/vcl/source/glyphs/glyphcache.cxx b/vcl/source/glyphs/glyphcache.cxx index a159edd489a7..fa3b4cc28053 100644 --- a/vcl/source/glyphs/glyphcache.cxx +++ b/vcl/source/glyphs/glyphcache.cxx @@ -4,9 +4,9 @@ * * $RCSfile: glyphcache.cxx,v $ * - * $Revision: 1.40 $ + * $Revision: 1.41 $ * - * last change: $Author: ihi $ $Date: 2006-11-14 15:23:47 $ + * last change: $Author: obo $ $Date: 2007-01-25 10:59:59 $ * * The Contents of this file are made available subject to * the terms of GNU Lesser General Public License Version 2.1. @@ -80,6 +80,7 @@ GlyphCache::~GlyphCache() delete mpFtManager; } + // ----------------------------------------------------------------------- #ifndef IRIX @@ -374,7 +375,10 @@ ServerFont::ServerFont( const ImplFontSelectData& rFSD ) mpPrevGCFont( NULL ), mpNextGCFont( NULL ), mnCos( 0x10000), - mnSin( 0) + mnSin( 0 ), + mnZWJ( 0 ), + mnZWNJ( 0 ), + mbCollectedZW( false ) { // TODO: move update of mpFontEntry into FontEntry class when // it becomes reponsible for the ServerFont instantiation @@ -470,6 +474,23 @@ Point ServerFont::TransformPoint( const Point& rPoint ) const return Point( nX, nY ); } +bool ServerFont::IsGlyphInvisible( int nGlyphIndex ) +{ + if (!mbCollectedZW) + { + mnZWJ = GetGlyphIndex( 0x200D ); + mnZWNJ = GetGlyphIndex( 0x200C ); + mbCollectedZW = true; + } + + if( !nGlyphIndex ) // don't hide the NotDef glyph + return false; + if( (nGlyphIndex == mnZWNJ) || (nGlyphIndex == mnZWJ) ) + return true; + + return false; +} + // ======================================================================= ImplServerFontEntry::ImplServerFontEntry( ImplFontSelectData& rFSD ) |