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 |