mirror of the now-defunct rocklinux.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
2.1 KiB

# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
#
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
#
# ROCK Linux: rock-src/package/kde/qt/qfontdatabase_x11.patch
# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
#
# --- ROCK-COPYRIGHT-NOTE-END ---
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