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