|
|
@ -0,0 +1,33 @@ |
|
|
|
|
|
|
|
This is the a workaround for a newly introduced font problem in Qt-3.3.1 - |
|
|
|
official patch. |
|
|
|
|
|
|
|
- Rene Rebe <rene@rocklinux.org> |
|
|
|
|
|
|
|
--- /tmp/tmp.17383.0 2004-03-04 17:53:01.000000000 +0100
|
|
|
|
+++ qt-3/src/kernel/qfontdatabase_x11.cpp 2004-03-04 17:47:59.000000000 +0100
|
|
|
|
@@ -1508,6 +1516,24 @@
|
|
|
|
XftResult res; |
|
|
|
XftPattern *result = |
|
|
|
XftFontMatch( QPaintDevice::x11AppDisplay(), fp->screen, pattern, &res ); |
|
|
|
+#ifdef QT_XFT2
|
|
|
|
+ if (script == QFont::Latin) {
|
|
|
|
+ // since we added the Euro char on top, check we actually got the family
|
|
|
|
+ // we requested. If we didn't get it correctly, remove the Euro from the pattern
|
|
|
|
+ // and try again.
|
|
|
|
+ FcChar8 *f;
|
|
|
|
+ res = FcPatternGetString(result, FC_FAMILY, 0, &f);
|
|
|
|
+ if (res == FcResultMatch && QString::fromUtf8((char *)f) != family->rawName) {
|
|
|
|
+ qDebug("trying without Euro");
|
|
|
|
+ FcPatternDel(pattern, FC_CHARSET);
|
|
|
|
+ FcCharSet *cs = FcCharSetCreate();
|
|
|
|
+ QChar sample = sampleCharacter(script);
|
|
|
|
+ FcCharSetAddChar(cs, sample.unicode());
|
|
|
|
+ FcPatternAddCharSet(pattern, FC_CHARSET, cs);
|
|
|
|
+ result = XftFontMatch( QPaintDevice::x11AppDisplay(), fp->screen, pattern, &res );
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+#endif
|
|
|
|
XftPatternDestroy(pattern); |
|
|
|
|
|
|
|
// We pass a duplicate to XftFontOpenPattern because either xft font |