rpms/openoffice.org/devel openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender.patch, NONE, 1.1 openoffice.org.spec, 1.994, 1.995 openoffice.org-2.1.0.oooXXXXX.vcl.filterzwatrender.patch, 1.1, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Mon Jan 15 15:37:23 UTC 2007


Author: caolanm

Update of /cvs/dist/rpms/openoffice.org/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv9467

Modified Files:
	openoffice.org.spec 
Added Files:
	openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender.patch 
Removed Files:
	openoffice.org-2.1.0.oooXXXXX.vcl.filterzwatrender.patch 
Log Message:
Resolves: rhbz#222423 openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender

openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender.patch:
 inc/glyphcache.hxx                 |    0 
 source/glyphs/glyphcache.cxx       |    0 
 unx/source/gdi/gcach_xpeer.cxx     |    0 
 vcl/inc/glyphcache.hxx             |    5 +++++
 vcl/source/glyphs/glyphcache.cxx   |   21 ++++++++++++++++++++-
 vcl/unx/source/gdi/gcach_xpeer.cxx |    9 +++++++++
 6 files changed, 34 insertions(+), 1 deletion(-)

--- NEW FILE openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender.patch ---
Index: inc/glyphcache.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/glyphcache.hxx,v
retrieving revision 1.32
diff -u -r1.32 glyphcache.hxx
--- openoffice.org.orig/vcl/inc/glyphcache.hxx	6 Oct 2006 09:56:50 -0000	1.32
+++ openoffice.org/vcl/inc/glyphcache.hxx	15 Jan 2007 15:25:02 -0000
@@ -203,6 +203,7 @@
     virtual int                 GetGlyphIndex( sal_UCS4 ) const = 0;
     virtual bool                GetGlyphOutline( int nGlyphIndex, ::basegfx::B2DPolyPolygon& ) const = 0;
     virtual bool                GetAntialiasAdvice( void ) const = 0;
+    bool                        IsZeroWidthGlyph( int nGlyphIndex );
     virtual bool                GetGlyphBitmap1( int nGlyphIndex, RawBitmap& ) const = 0;
     virtual bool                GetGlyphBitmap8( int nGlyphIndex, RawBitmap& ) const = 0;
 
@@ -248,6 +249,10 @@
     // 16.16 fixed point values used for a rotated font
     long                        mnCos;
     long                        mnSin;
+private:
+    int                         mnZWJ;
+    int                         mnZWNJ;
+    bool                        mbCollectedZW;
 };
 
 // =======================================================================
Index: source/glyphs/glyphcache.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/glyphs/glyphcache.cxx,v
retrieving revision 1.39
diff -u -r1.39 glyphcache.cxx
--- openoffice.org.orig/vcl/source/glyphs/glyphcache.cxx	13 Oct 2006 08:32:06 -0000	1.39
+++ openoffice.org/vcl/source/glyphs/glyphcache.cxx	15 Jan 2007 15:25:15 -0000
@@ -76,6 +76,7 @@
         delete mpFtManager;
 }
 
+
 // -----------------------------------------------------------------------
 
 #ifndef IRIX
@@ -380,7 +381,10 @@
     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
@@ -474,6 +478,21 @@
     long nX = (long)(rPoint.X() * dCos + rPoint.Y() * dSin);
     long nY = (long)(rPoint.Y() * dCos - rPoint.X() * dSin);
     return Point( nX, nY );
+}
+
+bool ServerFont::IsZeroWidthGlyph(int nGlyphIndex)
+{
+    if (!mbCollectedZW)
+    {
+        mnZWJ = GetGlyphIndex( 0x200D );
+        mnZWNJ = GetGlyphIndex( 0x200C );
+        mbCollectedZW = true;
+    }
+
+    if (nGlyphIndex && (nGlyphIndex == mnZWNJ) || (nGlyphIndex == mnZWJ))
+        return true;
+
+    return false;
 }
 
 // =======================================================================
Index: unx/source/gdi/gcach_xpeer.cxx
===================================================================
RCS file: /cvs/gsl/vcl/unx/source/gdi/gcach_xpeer.cxx,v
retrieving revision 1.44.38.1
diff -u -r1.44.38.1 gcach_xpeer.cxx
--- openoffice.org.orig/vcl/unx/source/gdi/gcach_xpeer.cxx	3 Nov 2006 11:38:51 -0000	1.44.38.1
+++ openoffice.org/vcl/unx/source/gdi/gcach_xpeer.cxx	15 Jan 2007 15:26:04 -0000
@@ -621,6 +621,9 @@
 
 Pixmap X11GlyphPeer::GetPixmap( ServerFont& rServerFont, int nGlyphIndex, int nReqScreen )
 {
+    if (rServerFont.IsZeroWidthGlyph(nGlyphIndex))
+        return NO_PIXMAP;
+
     GlyphData& rGlyphData = rServerFont.GetGlyphData( nGlyphIndex );
     Pixmap aPixmap = GetPixmap( rGlyphData, nReqScreen );
     if( aPixmap == NO_PIXMAP )
@@ -724,6 +727,9 @@
 const RawBitmap* X11GlyphPeer::GetRawBitmap( ServerFont& rServerFont,
     int nGlyphIndex )
 {
+    if (rServerFont.IsZeroWidthGlyph(nGlyphIndex))
+        return NO_RAWBMP;
+
     GlyphData& rGlyphData = rServerFont.GetGlyphData( nGlyphIndex );
 
     const RawBitmap* pRawBitmap = GetRawBitmap( rGlyphData );
@@ -754,6 +760,9 @@
 
 Glyph X11GlyphPeer::GetGlyphId( ServerFont& rServerFont, int nGlyphIndex )
 {
+    if (rServerFont.IsZeroWidthGlyph(nGlyphIndex))
+        return NO_GLYPHID;
+
     GlyphData& rGlyphData = rServerFont.GetGlyphData( nGlyphIndex );
 
     Glyph aGlyphId = GetRenderGlyph( rGlyphData );


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/dist/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.994
retrieving revision 1.995
diff -u -r1.994 -r1.995
--- openoffice.org.spec	15 Jan 2007 13:55:49 -0000	1.994
+++ openoffice.org.spec	15 Jan 2007 15:37:21 -0000	1.995
@@ -122,7 +122,7 @@
 Patch54: openoffice.org-2.1.0.oooXXXXX.lingucomponent.systemhunspell.patch
 Patch55: openoffice.org-2.1.0.rh217269.officecfg.nosequencecheck.patch
 Patch56: openoffice.org-2.1.0.ooo72129.vcl.fontglyphindex.patch
-Patch57: openoffice.org-2.1.0.oooXXXXX.vcl.filterzwatrender.patch
+Patch57: openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender.patch
 Patch58: workspace.vcl71.patch
 Patch59: openoffice.org-2.1.0.gccXXXXX.basegfx.crash.patch
 Patch60: workspace.impress115.patch
@@ -996,7 +996,7 @@
 %patch54 -p1 -b .oooXXXXX.lingucomponent.systemhunspell.patch
 %patch55 -p1 -b .rh217269.officecfg.nosequencecheck.patch
 %patch56 -p1 -b .ooo72129.vcl.fontglyphindex.patch
-%patch57 -p1 -b .oooXXXXX.vcl.filterzwatrender.patch
+%patch57 -p1 -b .ooo73485.vcl.filterzwatrender.patch
 %patch58 -p1 -b .workspace.vcl71.patch
 %patch59 -p1 -b .gccXXXXX.basegfx.crash.patch
 %patch60 -p1 -b .workspace.impress115.patch
@@ -2591,6 +2591,7 @@
 %changelog
 * Mon Jan 15 2007 Caolan McNamara <caolanm at redhat.com> - 1:2.1.0-6.13
 - Resolves: rhbz#222426 add openoffice.org-2.1.0.ooo73481.svx.longnotint32.patch
+- Resolves: rhbz#222423 openoffice.org-2.1.0.ooo73485.vcl.filterzwatrender.patch
 
 * Thu Jan 11 2007 Caolan McNamara <caolanm at redhat.com> - 1:2.1.0-6.12
 - Resolves: rhbz#216089 if there is no font at all to handle something


--- openoffice.org-2.1.0.oooXXXXX.vcl.filterzwatrender.patch DELETED ---




More information about the fedora-cvs-commits mailing list