rpms/openoffice.org/devel openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch, NONE, 1.1 openoffice.org.spec, 1.664, 1.665

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Apr 20 11:05:47 UTC 2006


Author: caolanm

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

Modified Files:
	openoffice.org.spec 
Added Files:
	openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch 
Log Message:
honour fontconfig hinting

openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch:
 inc/outfont.hxx                            |    0 
 inc/psprint/fontmanager.hxx                |    0 
 inc/vclenum.hxx                            |    0 
 psprint/inc/psprint/fontmanager.hxx        |   22 ++++++
 psprint/source/fontmanager/fontconfig.cxx  |   98 +++++++++++++++++++----------
 psprint/source/fontmanager/fontmanager.cxx |    8 ++
 source/fontmanager/fontconfig.cxx          |    0 
 source/fontmanager/fontmanager.cxx         |    0 
 source/glyphs/gcach_ftyp.cxx               |    0 
 source/glyphs/gcach_ftyp.hxx               |    0 
 unx/source/gdi/xlfd_extd.cxx               |    0 
 vcl/inc/outfont.hxx                        |    6 +
 vcl/inc/vclenum.hxx                        |   22 ++++++
 vcl/source/glyphs/gcach_ftyp.cxx           |   72 +++++++++++++++------
 vcl/source/glyphs/gcach_ftyp.hxx           |    6 +
 vcl/unx/source/gdi/xlfd_extd.cxx           |    4 +
 vcl/win/source/gdi/salgdi3.cxx             |    9 ++
 win/source/gdi/salgdi3.cxx                 |    0 
 18 files changed, 192 insertions(+), 55 deletions(-)

--- NEW FILE openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch ---
Index: inc/psprint/fontmanager.hxx
===================================================================
RCS file: /cvs/gsl/psprint/inc/psprint/fontmanager.hxx,v
retrieving revision 1.29
diff -u -r1.29 fontmanager.hxx
--- openoffice.org.orig/psprint/inc/psprint/fontmanager.hxx	29 Mar 2006 11:21:16 -0000	1.29
+++ openoffice.org/psprint/inc/psprint/fontmanager.hxx	20 Apr 2006 10:35:55 -0000
@@ -152,6 +152,17 @@
 };
 }
 
+namespace fchint
+{
+enum type {
+    Nohint = 0,
+    Slight = 1,
+    Medium = 2,
+    Full = 3
+};
+}
+
+
 /*
  *  the difference between FastPrintFontInfo and PrintFontInfo
  *  is that the information in FastPrintFontInfo can usually
@@ -179,6 +190,9 @@
     rtl_TextEncoding        			m_aEncoding;
     fcstatus::type                      m_eEmbeddedbitmap;
     fcstatus::type                      m_eAntialias;
+    fcstatus::type                      m_eAutoHint;
+    fcstatus::type                      m_eHinting;
+    fchint::type                        m_eHintStyle;
 
     FastPrintFontInfo() :
             m_nID( 0 ),
@@ -190,7 +204,10 @@
             m_ePitch( pitch::Unknown ),
             m_aEncoding( RTL_TEXTENCODING_DONTKNOW ),
             m_eEmbeddedbitmap( fcstatus::isunset ),
-            m_eAntialias( fcstatus::isunset )
+            m_eAntialias( fcstatus::isunset ),
+            m_eAutoHint( fcstatus::isunset ),
+            m_eHinting( fcstatus::isunset ),
+            m_eHintStyle( fchint::Full )
     {}
 };
 
@@ -307,6 +324,9 @@
 
         fcstatus::type                              m_eEmbeddedbitmap;
         fcstatus::type                              m_eAntialias;
+        fcstatus::type                              m_eAutoHint;
+        fcstatus::type                              m_eHinting;
+        fchint::type                                m_eHintStyle;
 
         std::map< sal_Unicode, sal_Int32 >			m_aEncodingVector;
         std::map< sal_Unicode, rtl::OString >		m_aNonEncoded;
Index: source/fontmanager/fontconfig.cxx
===================================================================
RCS file: /cvs/gsl/psprint/source/fontmanager/fontconfig.cxx,v
retrieving revision 1.17
diff -u -r1.17 fontconfig.cxx
--- openoffice.org.orig/psprint/source/fontmanager/fontconfig.cxx	29 Mar 2006 11:21:45 -0000	1.17
+++ openoffice.org/psprint/source/fontmanager/fontconfig.cxx	20 Apr 2006 10:36:06 -0000
@@ -334,9 +341,14 @@
                                                     FC_SLANT,
                                                     FC_WEIGHT,
                                                     FC_SPACING,
+                                                    FC_ANTIALIAS,
+                                                    FC_HINTING,
+                                                    FC_HINT_STYLE,
+                                                    FC_AUTOHINT,
                                                     FC_FILE,
-                                                    FC_OUTLINE,
                                                     FC_INDEX,
+                                                    FC_OUTLINE,
+                                                    FC_EMBEDDED_BITMAP,
                                                     (void *) NULL );
     FcPattern* pPattern = rWrapper.FcPatternCreate();
     FcFontSet* pFSet = rWrapper.FcFontList( pConfig, pPattern, pOSet );
@@ -355,35 +367,18 @@
             int weight = 0;
             int spacing = 0;
             int nCollectionEntry = -1;
-            FcBool outline = false, embitmap = true, antialias = true;
-            
-            FcResult eFileRes	= rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FILE, 0, &file );
-            FcResult eFamilyRes	= rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FAMILY, 0, &family );
-            FcResult eStyleRes	= rWrapper.FcPatternGetString( pFSet->fonts[i], FC_STYLE, 0, &style );
-            FcResult eSlantRes	= rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SLANT, 0, &slant );
-            FcResult eWeightRes	= rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_WEIGHT, 0, &weight );
-            FcResult eSpacRes	= rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SPACING, 0, &spacing );
-            FcResult eOutRes	= rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_OUTLINE, 0, &outline );
-            FcResult eIndexRes = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_INDEX, 0, &nCollectionEntry );            
-
-            FcResult eEmbeddedBitmap = FcResultNoMatch;
-            FcResult eAntialias = FcResultNoMatch;
-
-			if (eFamilyRes == FcResultMatch)
-			{
-			    FcPattern *pMatch = rWrapper.FcPatternCreate();
-    			rWrapper.FcPatternAddString(pMatch, FC_FAMILY, family);
-    			rWrapper.FcConfigSubstitute( NULL, pMatch, FcMatchPattern );
-    			FcResult eResult;
-    			if (FcPattern* pResult = rWrapper.FcFontSetMatch( NULL, &pFSet, 1, pMatch, &eResult ))
-    			{
-                	eEmbeddedBitmap = rWrapper.FcPatternGetBool( pResult, FC_EMBEDDED_BITMAP, 0, &embitmap );
-    	            eAntialias = rWrapper.FcPatternGetBool( pResult, FC_ANTIALIAS, 0, &antialias );
-    				rWrapper.FcPatternDestroy(pResult);
-    			}
-    			rWrapper.FcPatternDestroy(pMatch);
-   			}
-            
+            FcBool outline = false, embitmap = true, antialias = true, autohint = true, hinting = true;
+            int hintstyle = FC_HINT_FULL;
+
+            FcResult eFileRes        = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FILE, 0, &file );
+            FcResult eFamilyRes      = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_FAMILY, 0, &family );
+            FcResult eStyleRes       = rWrapper.FcPatternGetString( pFSet->fonts[i], FC_STYLE, 0, &style );
+            FcResult eSlantRes       = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SLANT, 0, &slant );
+            FcResult eWeightRes      = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_WEIGHT, 0, &weight );
+            FcResult eSpacRes        = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_SPACING, 0, &spacing );
+            FcResult eOutRes         = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_OUTLINE, 0, &outline );
+            FcResult eIndexRes       = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_INDEX, 0, &nCollectionEntry );
+
             if( eFileRes != FcResultMatch || eFamilyRes != FcResultMatch || eOutRes != FcResultMatch )
                 continue;
 
@@ -404,6 +399,24 @@
             if( eOutRes == FcResultMatch && ! outline )
                 continue;
 
+	    rWrapper.FcConfigSubstitute( pConfig, pFSet->fonts[i], FcMatchFont );
+	    rWrapper.FcDefaultSubstitute( pFSet->fonts[i] );
+            FcResult eEmbeddedBitmap = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_EMBEDDED_BITMAP, 0, &embitmap );
+            FcResult eAntialias      = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_ANTIALIAS, 0, &antialias );
+    	    FcResult eAutoHint       = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_AUTOHINT, 0, &autohint );
+    	    FcResult eHinting        = rWrapper.FcPatternGetBool( pFSet->fonts[i], FC_HINTING, 0, &hinting );
+    	    FcResult eHintStyle      = rWrapper.FcPatternGetInteger( pFSet->fonts[i], FC_HINT_STYLE, 0, &hintstyle );
+
+#ifdef HDU_DEBUG
+            fprintf( stderr, "   embeddedbitmap = %d, antialias = %d, autohint = %d, hinting = %d, hintstyle = %d\n"
+                     , eEmbeddedBitmap == FcResultMatch ? embitmap : -1
+                     , eAntialias == FcResultMatch ? antialias : -1
+                     , eAutoHint == FcResultMatch ? autohint : -1
+                     , eHinting == FcResultMatch ? hinting : -1
+                     , eHintStyle == FcResultMatch ? hintstyle : -1
+                     );
+#endif
+
             // see if this font is already cached
             // update attributes
             std::list< PrintFont* > aFonts;
@@ -526,8 +539,38 @@
                 {
                   pUpdate->m_eAntialias = antialias ? fcstatus::istrue : fcstatus::isfalse;
                 }
+                if( eAutoHint == FcResultMatch )
+                {
+                  pUpdate->m_eAutoHint = autohint ? fcstatus::istrue : fcstatus::isfalse;
+                }
+                if( eHinting == FcResultMatch )
+                {
+                  pUpdate->m_eHinting = hinting ? fcstatus::istrue : fcstatus::isfalse;
+                }
+                if (eHintStyle != FcResultMatch)
+                {
+                  pUpdate->m_eHintStyle = fchint::Full;
+                }
+                else
+                {
+                  switch (hintstyle)
+                  {
+                    case FC_HINT_NONE:
+                      pUpdate->m_eHintStyle = fchint::Nohint;
+                      break;
+                    case FC_HINT_SLIGHT:
+                      pUpdate->m_eHintStyle = fchint::Slight;
+                      break;
+                    case FC_HINT_MEDIUM:
+                      pUpdate->m_eHintStyle = fchint::Medium;
+                      break;
+                    case FC_HINT_FULL:
+                    default:
+                      pUpdate->m_eHintStyle = fchint::Full;
+                      break;
+                  }
+                }
 
-                
                 // update font cache
                 m_pFontCache->updateFontCacheEntry( pUpdate, false );
                 // sort into known fonts
Index: source/fontmanager/fontmanager.cxx
===================================================================
RCS file: /cvs/gsl/psprint/source/fontmanager/fontmanager.cxx,v
retrieving revision 1.67
diff -u -r1.67 fontmanager.cxx
--- openoffice.org.orig/psprint/source/fontmanager/fontmanager.cxx	7 Apr 2006 13:44:31 -0000	1.67
+++ openoffice.org/psprint/source/fontmanager/fontmanager.cxx	20 Apr 2006 10:36:18 -0000
@@ -381,7 +381,10 @@
         m_bHaveVerticalSubstitutedGlyphs( false ),
         m_bUserOverride( false ),
         m_eEmbeddedbitmap( fcstatus::isunset ),
-        m_eAntialias( fcstatus::isunset )
+        m_eAntialias( fcstatus::isunset ),
+        m_eAutoHint( fcstatus::isunset ),
+        m_eHinting( fcstatus::isunset ),
+        m_eHintStyle( fchint::Full )
 {
 }
 
@@ -2595,6 +2598,9 @@
     rInfo.m_aEncoding       = pFont->m_aEncoding;
     rInfo.m_eEmbeddedbitmap = pFont->m_eEmbeddedbitmap;
     rInfo.m_eAntialias      = pFont->m_eAntialias;
+    rInfo.m_eAutoHint       = pFont->m_eAutoHint;
+    rInfo.m_eHinting        = pFont->m_eHinting;
+    rInfo.m_eHintStyle      = pFont->m_eHintStyle;
     rInfo.m_aAliases.clear();
     for( ::std::list< int >::iterator it = pFont->m_aAliases.begin(); it != pFont->m_aAliases.end(); ++it )
         rInfo.m_aAliases.push_back( m_pAtoms->getString( ATOM_FAMILYNAME, *it ) );
Index: inc/outfont.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/outfont.hxx,v
retrieving revision 1.21
diff -u -r1.21 outfont.hxx
--- openoffice.org.orig/vcl/inc/outfont.hxx	7 Apr 2006 15:27:27 -0000	1.21
+++ openoffice.org/vcl/inc/outfont.hxx	20 Apr 2006 10:32:09 -0000
@@ -120,6 +120,9 @@
     bool               IsSubsettable() const     { return mbSubsettable; }
     FontEmbeddedBitmap UseEmbeddedBitmap() const { return meEmbeddedBitmap; }
     FontAntiAlias      UseAntiAlias() const      { return meAntiAlias; }
+    FontHinting        UseHinting() const        { return meHinting; }
+    FontAutoHint       UseAutoHint() const       { return meAutoHint; }
+    FontHintStyle      GetHintStyle() const      { return meHintStyle; }
 
 public: // TODO: hide members behind accessor methods
     String             maMapNames;       // List of family name aliass separated with ';'
@@ -130,6 +133,9 @@
     bool               mbEmbeddable;     // true: the font can be embedded
     FontEmbeddedBitmap meEmbeddedBitmap; // whether the embedded bitmaps should be used
     FontAntiAlias      meAntiAlias;      // whether the font should be antialiased
+    FontAutoHint       meAutoHint;       // whether the font should be autohinted
+    FontHinting        meHinting;        // whether the font should be hinted
+    FontHintStyle      meHintStyle;      // type of font hinting to be used
 };
 
 // ----------------
Index: inc/vclenum.hxx
===================================================================
RCS file: /cvs/gsl/vcl/inc/vclenum.hxx,v
retrieving revision 1.7
diff -u -r1.7 vclenum.hxx
--- openoffice.org.orig/vcl/inc/vclenum.hxx	29 Mar 2006 11:24:50 -0000	1.7
+++ openoffice.org/vcl/inc/vclenum.hxx	20 Apr 2006 10:32:57 -0000
@@ -289,6 +289,28 @@
 
 #endif
 
+#ifndef ENUM_FONTAUTOHINT_DECLARED
+#define ENUM_FONTAUTOHINT_DECLARED
+
+enum FontAutoHint { AUTOHINT_DONTKNOW, AUTOHINT_FALSE, AUTOHINT_TRUE };
+
+#endif
+
+#ifndef ENUM_FONTHINTING_DECLARED
+#define ENUM_FONTHINTING_DECLARED
+
+enum FontHinting { HINTING_DONTKNOW, HINTING_FALSE, HINTING_TRUE };
+
+#endif
+
+#ifndef ENUM_FONTHINTSTYLE_DECLARED
+#define ENUM_FONTHINTSTYLE_DECLARED
+
+enum FontHintStyle { HINT_NONE, HINT_SLIGHT, HINT_MEDIUM, HINT_FULL };
+
+#endif
+
+
 // ------------------------------------------------------------
 
 #ifndef ENUM_KEYFUNCTYPE_DECLARED
Index: source/glyphs/gcach_ftyp.cxx
===================================================================
RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.cxx,v
retrieving revision 1.122
diff -u -r1.122 gcach_ftyp.cxx
--- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.cxx	7 Apr 2006 15:33:10 -0000	1.122
+++ openoffice.org/vcl/source/glyphs/gcach_ftyp.cxx	20 Apr 2006 10:35:25 -0000
@@ -387,6 +387,13 @@
     return mpExtraKernInfo->GetUnscaledKernValue( cLeftChar, cRightChar );
 }
 
+bool FtFontInfo::DontUseHinting() const
+{
+    return
+      (maDevFontAttributes.UseHinting() == HINTING_FALSE) ||
+      (maDevFontAttributes.GetHintStyle() == HINT_NONE);
+}
+
 // -----------------------------------------------------------------------
 
 static unsigned GetUInt( const unsigned char* p ) { return((p[0]<<24)+(p[1]<<16)+(p[2]<<8)+p[3]);}
@@ -684,6 +691,7 @@
 FreetypeServerFont::FreetypeServerFont( const ImplFontSelectData& rFSD, FtFontInfo* pFI )
 :   ServerFont( rFSD ),
     mnPrioEmbedded(nDefaultPrioEmbedded), mnPrioAntiAlias(nDefaultPrioAntiAlias),
+    mnPrioAutoHint(nDefaultPrioAutoHint),
     mpFontInfo( pFI ),
     maFaceFT( NULL ),
     maSizeFT( NULL ),
@@ -806,42 +814,64 @@
 
     mbArtItalic = (rFSD.meItalic != ITALIC_NONE && pFI->GetFontAttributes().GetSlant() == ITALIC_NONE);
     mbArtBold = (rFSD.meWeight > WEIGHT_MEDIUM && pFI->GetFontAttributes().GetWeight() <= WEIGHT_MEDIUM);
+    mbUseGamma = false;
+    if (mbArtBold)
+    {
+        static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
+        static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
+        static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
+        static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
+        static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
+        static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
+        static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
+        const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
+        if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
+	          && rFSD.mnHeight < 20)
+	    mbUseGamma = true;
+    }
+
+    FontAutoHint eHint = mpFontInfo->GetUseAutoHint();
+    if (eHint == AUTOHINT_DONTKNOW)
+        eHint = mbUseGamma ? AUTOHINT_TRUE : AUTOHINT_FALSE;
 
-    static const int TT_CODEPAGE_RANGE_874  = (1L << 16); // Thai
-    static const int TT_CODEPAGE_RANGE_932  = (1L << 17); // JIS/Japan
-    static const int TT_CODEPAGE_RANGE_936  = (1L << 18); // Chinese: Simplified
-    static const int TT_CODEPAGE_RANGE_949  = (1L << 19); // Korean Wansung
-    static const int TT_CODEPAGE_RANGE_950  = (1L << 20); // Chinese: Traditional
-    static const int TT_CODEPAGE_RANGE_1361 = (1L << 21); // Korean Johab
-    static const int TT_CODEPAGE_RANGES1_CJKT = 0x3F0000; // all of the above
-    const TT_OS2* pOs2 = (const TT_OS2*)FT_Get_Sfnt_Table( maFaceFT, ft_sfnt_os2 );
-    if ((pOs2) && (pOs2->ulCodePageRange1 & TT_CODEPAGE_RANGES1_CJKT )
-	      && rFSD.mnHeight < 20)
-	mbUseGamma = true;
-    else
-	mbUseGamma = false;
-
-    if (mbUseGamma)
+    if (eHint == AUTOHINT_TRUE)
 	mnLoadFlags |= FT_LOAD_FORCE_AUTOHINT;
 
     if( (mnSin != 0) && (mnCos != 0) ) // hinting for 0/90/180/270 degrees only
         mnLoadFlags |= FT_LOAD_NO_HINTING;
+
     mnLoadFlags |= FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH; //#88334#
 
     if (mpFontInfo->DontUseAntiAlias())
         mnPrioAntiAlias = 0;
     if (mpFontInfo->DontUseEmbeddedBitmaps())
         mnPrioEmbedded = 0;
+    if (mpFontInfo->DontUseHinting())
+        mnPrioAutoHint = 0;
 
 #if (FTVERSION >= 2005) || defined(TT_CONFIG_OPTION_BYTECODE_INTERPRETER)
-    if( nDefaultPrioAutoHint <= 0 )
+    if( mnPrioAutoHint <= 0 )
 #endif
         mnLoadFlags |= FT_LOAD_NO_HINTING;
 
-#ifdef FT_LOAD_TARGET_LIGHT
+#if defined(FT_LOAD_TARGET_LIGHT) && defined(FT_LOAD_TARGET_NORMAL)
     // enable "light hinting" if available
     if( !(mnLoadFlags & FT_LOAD_NO_HINTING) && (nFTVERSION >= 2103))
-        mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
+    {
+	switch (mpFontInfo->GetHintStyle())
+	{
+	    default:
+	    case HINT_SLIGHT:
+	    case HINT_MEDIUM:
+                mnLoadFlags |= FT_LOAD_TARGET_LIGHT;
+                break;
+	    case HINT_FULL:
+                mnLoadFlags |= FT_LOAD_TARGET_NORMAL;
+                break;
+	    case HINT_NONE:
+                break;
+	}
+    }
 #endif
 
     if( ((mnCos != 0) && (mnSin != 0)) || (mnPrioEmbedded <= 0) )
@@ -1300,11 +1330,11 @@
 #if (FTVERSION >= 2002)
     // for 0/90/180/270 degree fonts enable autohinting even if not advisable
     // non-hinted and non-antialiased bitmaps just look too ugly
-    if( (mnCos==0 || mnSin==0) && (nDefaultPrioAutoHint > 0) )
+    if( (mnCos==0 || mnSin==0) && (mnPrioAutoHint > 0) )
         nLoadFlags &= ~FT_LOAD_NO_HINTING;
 #endif
 
-    if( mnPrioEmbedded <= nDefaultPrioAutoHint )
+    if( mnPrioEmbedded <= mnPrioAutoHint )
         nLoadFlags |= FT_LOAD_NO_BITMAP;
 
     FT_Error rc = -1;
@@ -1451,7 +1481,7 @@
     // autohinting in FT<=2.0.4 makes antialiased glyphs look worse
     nLoadFlags |= FT_LOAD_NO_HINTING;
 #else
-    if( (nGlyphFlags & GF_UNHINTED) || (nDefaultPrioAutoHint < mnPrioAntiAlias) )
+    if( (nGlyphFlags & GF_UNHINTED) || (mnPrioAutoHint < mnPrioAntiAlias) )
         nLoadFlags |= FT_LOAD_NO_HINTING;
 #endif
 
Index: source/glyphs/gcach_ftyp.hxx
===================================================================
RCS file: /cvs/gsl/vcl/source/glyphs/gcach_ftyp.hxx,v
retrieving revision 1.34
diff -u -r1.34 gcach_ftyp.hxx
--- openoffice.org.orig/vcl/source/glyphs/gcach_ftyp.hxx	29 Mar 2006 11:26:24 -0000	1.34
+++ openoffice.org/vcl/source/glyphs/gcach_ftyp.hxx	20 Apr 2006 10:35:25 -0000
@@ -92,11 +92,14 @@
     const ::rtl::OString* GetFontFileName() const   { return mpFontFile->GetFileName(); }
     int                   GetFaceNum() const        { return mnFaceNum; }
     int                   GetSynthetic() const      { return mnSynthetic; }
-    int                   GetFontId() const         { return mnFontId; }
+    int                   GetFontId() const         { return mnFontId; }
     bool                  DontUseAntiAlias() const  
         { return maDevFontAttributes.UseAntiAlias() == ANTIALIAS_FALSE; }
     bool                  DontUseEmbeddedBitmaps() const 
         { return maDevFontAttributes.UseEmbeddedBitmap() == EMBEDDEDBITMAP_FALSE; }
+    bool                  DontUseHinting() const;
+    FontAutoHint          GetUseAutoHint() const 	{ return maDevFontAttributes.UseAutoHint(); }
+    FontHintStyle         GetHintStyle() const 		{ return maDevFontAttributes.GetHintStyle(); }
     bool                  IsSymbolFont() const      { return maDevFontAttributes.IsSymbolFont(); }
     const ImplFontAttributes& GetFontAttributes() const { return maDevFontAttributes; }
 
@@ -212,6 +215,7 @@
     int                         mnWidth;
     int                         mnPrioEmbedded;
     int                         mnPrioAntiAlias;
+    int                         mnPrioAutoHint;
     FtFontInfo*                 mpFontInfo;
     FT_Int                      mnLoadFlags;
     double                      mfStretch;
Index: unx/source/gdi/xlfd_extd.cxx
===================================================================
RCS file: /cvs/gsl/vcl/unx/source/gdi/xlfd_extd.cxx,v
retrieving revision 1.26
diff -u -r1.26 xlfd_extd.cxx
--- openoffice.org.orig/vcl/unx/source/gdi/xlfd_extd.cxx	29 Mar 2006 11:29:14 -0000	1.26
+++ openoffice.org/vcl/unx/source/gdi/xlfd_extd.cxx	20 Apr 2006 10:40:01 -0000
@@ -117,6 +117,10 @@
     meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
     meAntiAlias = ANTIALIAS_DONTKNOW;
 
+    meAutoHint = AUTOHINT_DONTKNOW;
+    meHinting = HINTING_DONTKNOW;
+    meHintStyle = HINT_FULL;
+
     mnQuality      = -1;
 }
 
Index: win/source/gdi/salgdi3.cxx
===================================================================
RCS file: /cvs/gsl/vcl/win/source/gdi/salgdi3.cxx,v
retrieving revision 1.77
diff -u -r1.77 salgdi3.cxx
--- openoffice.org.orig/vcl/win/source/gdi/salgdi3.cxx	29 Mar 2006 11:29:53 -0000	1.77
+++ openoffice.org/vcl/win/source/gdi/salgdi3.cxx	20 Apr 2006 10:40:39 -0000
@@ -411,6 +411,9 @@
 
     aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
     aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+    aDFA.meAutoHint = AUTOHINT_DONTKNOW;
+    aDFA.meHinting = HINTING_DONTKNOW;
+    aDFA.meHintStyle = HINT_FULL;
     
     // TODO: add alias names
 
@@ -493,6 +496,9 @@
 
     aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
     aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+    aDFA.meAutoHint = AUTOHINT_DONTKNOW;
+    aDFA.meHinting = HINTING_DONTKNOW;
+    aDFA.meHintStyle = HINT_FULL;
 
     // TODO: add alias names
     return aDFA;
@@ -1890,6 +1896,9 @@
     aDFA.mbEmbeddable = false;
     aDFA.meEmbeddedBitmap = EMBEDDEDBITMAP_DONTKNOW;
     aDFA.meAntiAlias = ANTIALIAS_DONTKNOW;
+    aDFA.meAutoHint = AUTOHINT_DONTKNOW;
+    aDFA.meHinting = HINTING_DONTKNOW;
+    aDFA.meHintStyle = HINT_FULL;
 
     /*
 	// TODO: improve ImplDevFontAttributes using "FONTRES:" from *.fot file


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/dist/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.664
retrieving revision 1.665
diff -u -r1.664 -r1.665
--- openoffice.org.spec	18 Apr 2006 10:11:41 -0000	1.664
+++ openoffice.org.spec	20 Apr 2006 11:05:44 -0000	1.665
@@ -222,6 +222,7 @@
 %endif
 Patch39: openoffice.org-2.0.2.rh188467.printingdefaults.patch
 Patch40: openoffice.org-2.0.2.ooo64463.extensions.noxaw.patch
+Patch41: openoffice.org-2.0.2.ooo64508.vcl.honourfontconfighinting.patch
 
 %define instdir %{_libdir}/openoffice.org2.0
 
@@ -1136,6 +1137,7 @@
 %endif
 %patch39 -p1 -b .rh188467.printingdefaults.patch
 %patch40 -p1 -b .ooo64463.extensions.noxaw.patch
+%patch41 -p1 -b .ooo64508.vcl.honourfontconfighinting.patch
 
 %if %{includingexternals}
 #start ludicrous workaround
@@ -3685,6 +3687,7 @@
 * Tue Apr 18 2006 Caolan McNamara <caolanm at redhat.com> - 1:2.0.2-5.10
 - ooo#64463# don't require Xaw for the use mozilla plugins (e.g flash)
   in OOo feature
+- ooo#64508#/rh#189061# honour fontconfig hinting settings
 
 * Wed Apr 12 2006 Caolan McNamara <caolanm at redhat.com> - 1:2.0.2-5.9
 - rh#187939# not detecting changes to CUPS printers during execution




More information about the fedora-cvs-commits mailing list