Richard CHAN Shih-Ping <[EMAIL PROTECTED]> writes:

> Anyway - just for a lark - I installed Ximian's RH7.3 gnome2 desktop
> snapshot and replaced pango with pango-HEAD; had to recompile
> libgdk-x11-2.0.so as it picked up libXft.so.1 from somewhere (Q: why not
> just libpangoxft-1.0.so? Shared library dependencies never fail to
> confuse...) and just like RedHat Limbo...Gnome2 with fontconfig and
> Xft2. $Amazing$

GDK actually uses Xft directly and not just through Pango; that's
why it has an explicit dependency on the Xft libraries.
 
> While I am on a mission to purge my system of Xft1 apps I tried
> qt3.diff on qt-x11-3.0.5 - some not so small rejects there but they do
> not seem too terrible. $Amazing^2$

If you are using Qt with Xft, there are a couple of fixes on top
of qt3.diff you'll need; the attached are what we have in Rawhide
in a quick check.

Regards,
                                        Owen

--- qt-x11-free-3.0.4/src/kernel/qpainter_x11.cpp.clipfix	2002-07-18 12:36:18.000000000 +0200
+++ qt-x11-free-3.0.4/src/kernel/qpainter_x11.cpp	2002-07-18 12:39:36.000000000 +0200
@@ -702,13 +702,13 @@
 #endif // QT_NO_XFTFREETYPE
                 XSetRegion( dpy, gc, paintEventClipRegion->handle() );
             }
-        } else if (penRef && ((QGCC*)penRef)->clip_serial ) {
+        } else {
 #ifndef QT_NO_XFTFREETYPE
             if (rendhd)
 		XftDrawSetClip ((XftDraw *) rendhd, 0);
 #endif // QT_NO_XFTFREETYPE
             XSetClipMask( dpy, gc, None );
-            ((QGCC*)penRef)->clip_serial = 0;
+            if (penRef) ((QGCC*)penRef)->clip_serial = 0;
         }
     }
 
@@ -911,13 +911,13 @@
 #endif // QT_NO_XFTFREETYPE
                 XSetRegion( dpy, gc_brush, paintEventClipRegion->handle() );
             }
-        } else if (brushRef && ((QGCC*)brushRef)->clip_serial ) {
+        } else {
 #ifndef QT_NO_XFTFREETYPE
 	    if (rendhd)
 		XftDrawSetClip ((XftDraw *) rendhd, 0);
 #endif // QT_NO_XFTFREETYPE
             XSetClipMask( dpy, gc_brush, None );
-            ((QGCC*)brushRef)->clip_serial = 0;
+            if (brushRef) ((QGCC*)brushRef)->clip_serial = 0;
         }
     }
 
--- ./src/kernel/qfont_x11.cpp.fcsample	Tue Jul 23 15:35:28 2002
+++ ./src/kernel/qfont_x11.cpp	Tue Jul 23 15:35:59 2002
@@ -1512,10 +1512,12 @@
     XftPatternAddInteger (pattern, XFT_SLANT, slant_value);
     XftPatternAddDouble (pattern, sizeFormat, size_value);
 #ifdef QT_XFT2
-    FcCharSet   *cs = FcCharSetCreate ();
-    FcCharSetAddChar (cs, sample.unicode());
-    FcPatternAddCharSet (pattern, FC_CHARSET, cs);
-    FcCharSetDestroy (cs);  /* let pattern hold last reference */
+    if (sample.unicode() != 0 ) {
+	FcCharSet   *cs = FcCharSetCreate ();
+	FcCharSetAddChar (cs, sample.unicode());
+	FcPatternAddCharSet (pattern, FC_CHARSET, cs);
+	FcCharSetDestroy (cs);  /* let pattern hold last reference */
+    }
 #endif
 
     if ( !qt_use_antialiasing || request.styleStrategy & ( QFont::PreferAntialias |

Reply via email to