rpms/openoffice.org/devel openoffice.org.spec, 1.1421, 1.1422 workspace.cairotext01.patch, 1.4, 1.5

Caolan McNamara (caolanm) fedora-extras-commits at redhat.com
Thu Feb 7 12:30:29 UTC 2008


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25528

Modified Files:
	openoffice.org.spec workspace.cairotext01.patch 
Log Message:
Resolves: rhbz#431620 presentation problems


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.1421
retrieving revision 1.1422
diff -u -r1.1421 -r1.1422
--- openoffice.org.spec	7 Feb 2008 09:01:17 -0000	1.1421
+++ openoffice.org.spec	7 Feb 2008 12:29:35 -0000	1.1422
@@ -2862,6 +2862,7 @@
 %changelog
 * Thu Feb 07 2008 Caolan McNamara <caolanm at redhat.com> - 1:2.4.0-6.3
 - Resolves: rhbz#431805 openoffice.org-2.4.0.ooo85931.svx.getentrypos.patch
+- Resolves: rhbz#431620 presentation problems
 
 * Tue Feb 05 2008 Caolan McNamara <caolanm at redhat.com> - 1:2.4.0-6.2
 - fix problem with mixed fontsizes with same font face

workspace.cairotext01.patch:

Index: workspace.cairotext01.patch
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/workspace.cairotext01.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- workspace.cairotext01.patch	6 Feb 2008 12:42:42 -0000	1.4
+++ workspace.cairotext01.patch	7 Feb 2008 12:29:35 -0000	1.5
@@ -1,7 +1,11 @@
-Index: gsl/vcl/inc/vcl/glyphcache.hxx
-diff -u gsl/vcl/inc/vcl/glyphcache.hxx:1.2 gsl/vcl/inc/vcl/glyphcache.hxx:1.2.282.1
---- gsl/vcl/inc/vcl/glyphcache.hxx:1.2	Wed Apr 11 10:55:02 2007
-+++ gsl/vcl/inc/vcl/glyphcache.hxx	Fri Jan 25 00:53:45 2008
+Index: inc/vcl/glyphcache.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/inc/vcl/glyphcache.hxx,v
+retrieving revision 1.2
+retrieving revision 1.2.282.1
+diff -u -r1.2 -r1.2.282.1
+--- openoffice.org.orig/vcl/inc/vcl/glyphcache.hxx	11 Apr 2007 17:55:02 -0000	1.2
++++ openoffice.org/vcl/inc/vcl/glyphcache.hxx	25 Jan 2008 08:53:45 -0000	1.2.282.1
 @@ -186,6 +186,10 @@
      virtual const ::rtl::OString*   GetFontFileName() const { return NULL; }
      virtual int                 GetFontFaceNumber() const   { return 0; }
@@ -13,10 +17,14 @@
  
      const ImplFontSelectData&   GetFontSelData() const      { return maFontSelData; }
  
-Index: gsl/vcl/source/glyphs/gcach_ftyp.cxx
-diff -u gsl/vcl/source/glyphs/gcach_ftyp.cxx:1.147 gsl/vcl/source/glyphs/gcach_ftyp.cxx:1.147.96.1
---- gsl/vcl/source/glyphs/gcach_ftyp.cxx:1.147	Mon Nov 26 07:13:41 2007
-+++ gsl/vcl/source/glyphs/gcach_ftyp.cxx	Tue Feb  5 08:22:27 2008
+Index: source/glyphs/gcach_ftyp.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
+retrieving revision 1.147
+retrieving revision 1.147.96.1
+diff -u -r1.147 -r1.147.96.1
+--- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.cxx	26 Nov 2007 15:13:41 -0000	1.147
++++ openoffice.org/vcl/source/glyphs/gcach_ftyp.cxx	5 Feb 2008 16:22:27 -0000	1.147.96.1
 @@ -518,6 +518,16 @@
  
  // -----------------------------------------------------------------------
@@ -34,10 +42,14 @@
  FreetypeManager::~FreetypeManager()
  {
  // This crashes on Solaris 10 
-Index: gsl/vcl/source/glyphs/gcach_ftyp.hxx
-diff -u gsl/vcl/source/glyphs/gcach_ftyp.hxx:1.39 gsl/vcl/source/glyphs/gcach_ftyp.hxx:1.39.180.2
---- gsl/vcl/source/glyphs/gcach_ftyp.hxx:1.39	Tue Jul 31 09:09:30 2007
-+++ gsl/vcl/source/glyphs/gcach_ftyp.hxx	Tue Feb  5 08:22:27 2008
+Index: source/glyphs/gcach_ftyp.hxx
+===================================================================
+RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.hxx,v
+retrieving revision 1.39
+retrieving revision 1.39.180.2
+diff -u -r1.39 -r1.39.180.2
+--- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.hxx	31 Jul 2007 16:09:30 -0000	1.39
++++ openoffice.org/vcl/source/glyphs/gcach_ftyp.hxx	5 Feb 2008 16:22:27 -0000	1.39.180.2
 @@ -185,6 +185,10 @@
      virtual const ::rtl::OString* GetFontFileName() const { return mpFontInfo->GetFontFileName(); }
      virtual int                 GetFontFaceNum() const { return mpFontInfo->GetFaceNum(); }
@@ -49,10 +61,13 @@
  
      virtual void                FetchFontMetric( ImplFontMetricData&, long& rFactor ) const;
  
-Index: gsl/vcl/unx/inc/salgdi.h
-diff -u gsl/vcl/unx/inc/salgdi.h:1.41 gsl/vcl/unx/inc/salgdi.h:1.41.206.2
---- gsl/vcl/unx/inc/salgdi.h:1.41	Wed Jun 27 13:41:23 2007
-+++ gsl/vcl/unx/inc/salgdi.h	Mon Jan 28 00:53:49 2008
+Index: unx/inc/salgdi.h
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/inc/salgdi.h,v
+retrieving revision 1.41
+diff -u -r1.41 salgdi.h
+--- openoffice.org.orig/vcl/unx/inc/salgdi.h	27 Jun 2007 20:41:23 -0000	1.41
++++ openoffice.org/vcl/unx/inc/salgdi.h	7 Feb 2008 12:07:12 -0000
 @@ -58,6 +58,8 @@
  #include <vcl/dllapi.h>
  #endif
@@ -100,10 +115,13 @@
      
      void freeResources();
  public:
-Index: gsl/vcl/unx/source/gdi/salgdi3.cxx
-diff -u gsl/vcl/unx/source/gdi/salgdi3.cxx:1.149 gsl/vcl/unx/source/gdi/salgdi3.cxx:1.149.66.4
---- gsl/vcl/unx/source/gdi/salgdi3.cxx:1.149	Wed Dec 12 05:21:50 2007
-+++ gsl/vcl/unx/source/gdi/salgdi3.cxx	Wed Jan 30 01:08:40 2008
+Index: unx/source/gdi/salgdi3.cxx
+===================================================================
+RCS file: /cvs/gsl/vcl/unx/source/gdi/salgdi3.cxx,v
+retrieving revision 1.149
+diff -u -r1.149 salgdi3.cxx
+--- openoffice.org.orig/vcl/unx/source/gdi/salgdi3.cxx	12 Dec 2007 13:21:50 -0000	1.149
++++ openoffice.org/vcl/unx/source/gdi/salgdi3.cxx	7 Feb 2008 12:07:29 -0000
 @@ -123,6 +123,32 @@
  
  #include <hash_set>
@@ -137,7 +155,7 @@
  using namespace rtl;
  
  // -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-@@ -734,6 +760,288 @@
+@@ -734,6 +760,301 @@
  }
  
  //--------------------------------------------------------------------------
@@ -148,7 +166,7 @@
 +private:
 +    oslModule mpCairoLib;
 +    
-+    cairo_surface_t* (*mp_xlib_surface_create)(Display *, Drawable , Visual *, int , int );
++    cairo_surface_t* (*mp_xlib_surface_create_with_xrender_format)(Display *, Drawable , Screen *, XRenderPictFormat *, int , int );
 +    void (*mp_surface_destroy)(cairo_surface_t *);
 +    cairo_t* (*mp_create)(cairo_surface_t *);
 +    void (*mp_destroy)(cairo_t*);
@@ -172,8 +190,8 @@
 +    bool isValid() const { return (mpCairoLib != NULL); }
 +    bool isCairoRenderable(const ServerFont& rFont);
 +
-+    cairo_surface_t* xlib_surface_create(Display *pDisplay, Drawable drawable, Visual *pVisual, int width, int height)
-+        { return (*mp_xlib_surface_create)(pDisplay, drawable, pVisual, width, height); }
++    cairo_surface_t* xlib_surface_create_with_xrender_format(Display *pDisplay, Drawable drawable, Screen *pScreen, XRenderPictFormat *pFormat, int width, int height)
++        { return (*mp_xlib_surface_create_with_xrender_format)(pDisplay, drawable, pScreen, pFormat, width, height); }
 +    void surface_destroy(cairo_surface_t *surface) { (*mp_surface_destroy)(surface); }
 +    cairo_t* create(cairo_surface_t *surface) { return (*mp_create)(surface); }
 +    void destroy(cairo_t *cr) { (*mp_destroy)(cr); }
@@ -221,8 +239,8 @@
 +    if( !mpCairoLib )
 +	return;
 +
-+    mp_xlib_surface_create = (cairo_surface_t* (*)(Display *, Drawable , Visual *, int , int )) 
-+        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_xlib_surface_create" );
++    mp_xlib_surface_create_with_xrender_format = (cairo_surface_t* (*)(Display *, Drawable , Screen *, XRenderPictFormat *, int , int )) 
++        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_xlib_surface_create_with_xrender_format" );
 +    mp_surface_destroy = (void(*)(cairo_surface_t*)) 
 +        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_surface_destroy" );
 +    mp_create = (cairo_t*(*)(cairo_surface_t*)) 
@@ -253,7 +271,7 @@
 +        osl_getAsciiFunctionSymbol( mpCairoLib, "cairo_set_source_rgb" );
 +
 +    if( !( 
-+            mp_xlib_surface_create &&
++            mp_xlib_surface_create_with_xrender_format &&
 +            mp_surface_destroy &&
 +            mp_create &&
 +            mp_destroy &&
@@ -355,13 +373,26 @@
 +    if (cairo_glyphs.empty())
 +        return;
 +
++    // find a XRenderPictFormat compatible with the Drawable
++    XRenderPictFormat* pVisualFormat = static_cast<XRenderPictFormat*>(GetXRenderFormat());
++    if( !pVisualFormat )
++    {
++        Visual* pVisual = GetDisplay()->GetVisual( m_nScreen ).GetVisual();
++        pVisualFormat = XRenderPeer::GetInstance().FindVisualFormat( pVisual );
++        // cache the XRenderPictFormat
++        SetXRenderFormat( static_cast<void*>(pVisualFormat) );
++    }
++
++    DBG_ASSERT( pVisualFormat!=NULL, "no matching XRenderPictFormat for text" );
++    if( !pVisualFormat )
++	    return;
++
 +    CairoWrapper &rCairo = CairoWrapper::get();
 +
 +    Display* pDisplay = GetXDisplay();
-+    Visual* pVisual = GetDisplay()->GetVisual( GetScreenNumber() ).GetVisual();
 +
-+    cairo_surface_t *surface = rCairo.xlib_surface_create (pDisplay,
-+        hDrawable_, pVisual, 1, 1);
++    cairo_surface_t *surface = rCairo.xlib_surface_create_with_xrender_format (pDisplay,
++        hDrawable_, DefaultScreenOfDisplay(pDisplay), pVisualFormat, 1, 1);
 +
 +    /*
 +     * It might be ideal to cache surface and cairo context between calls and
@@ -426,7 +457,7 @@
  
  void X11SalGraphics::DrawServerAAFontString( const ServerFontLayout& rLayout )
  {
-@@ -1111,15 +1419,20 @@
+@@ -1111,15 +1432,20 @@
      // draw complex text
      ServerFont& rFont = rLayout.GetServerFont();
  




More information about the fedora-extras-commits mailing list