|
|
32de97d |
--- src/kernel/qfontdatabase_x11.cpp
|
|
|
32de97d |
+++ src/kernel/qfontdatabase_x11.cpp
|
|
|
32de97d |
@@ -1589,15 +1589,6 @@ QFontEngine *loadEngine( QFont::Script s
|
|
|
32de97d |
if (script == QFont::Latin)
|
|
|
32de97d |
// add Euro character
|
|
|
32de97d |
FcCharSetAddChar(cs, 0x20ac);
|
|
|
32de97d |
- if (script == QFont::Han_SimplifiedChinese)
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0x3400);
|
|
|
32de97d |
- if (script == QFont::Han_TraditionalChinese){
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0x3435);
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0xE000);
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0xF6B1);
|
|
|
32de97d |
- }
|
|
|
32de97d |
- if (script == QFont::MiscellaneousSymbols)
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0x2714);
|
|
|
32de97d |
FcPatternAddCharSet(pattern, FC_CHARSET, cs);
|
|
|
32de97d |
FcCharSetDestroy(cs);
|
|
|
32de97d |
}
|
|
|
32de97d |
@@ -1813,7 +1804,11 @@ static QFontEngine *loadFontConfigFont(c
|
|
|
32de97d |
FcPatternPrint(pattern);
|
|
|
32de97d |
#endif
|
|
|
32de97d |
|
|
|
32de97d |
+ // XftFontMatch calls the right ConfigSubstitute variants, but as we use
|
|
|
32de97d |
+ // FcFontMatch/Sort here we have to do it manually.
|
|
|
32de97d |
FcConfigSubstitute(0, pattern, FcMatchPattern);
|
|
|
32de97d |
+ XftDefaultSubstitute(QPaintDevice::x11AppDisplay(), QPaintDevice::x11AppScreen(), pattern);
|
|
|
32de97d |
+
|
|
|
32de97d |
// qDebug("1: pattern contains:");
|
|
|
32de97d |
// FcPatternPrint(pattern);
|
|
|
32de97d |
|
|
|
32de97d |
@@ -1847,10 +1842,6 @@ static QFontEngine *loadFontConfigFont(c
|
|
|
32de97d |
value.u.s = (const FcChar8 *)cs.data();
|
|
|
32de97d |
FcPatternAddWeak(pattern, FC_FAMILY, value, FcTrue);
|
|
|
32de97d |
}
|
|
|
32de97d |
-#ifdef FONT_MATCH_DEBUG
|
|
|
32de97d |
- printf("final pattern contains:\n");
|
|
|
32de97d |
- FcPatternPrint(pattern);
|
|
|
32de97d |
-#endif
|
|
|
32de97d |
}
|
|
|
32de97d |
|
|
|
32de97d |
if (script != QFont::Unicode) {
|
|
|
32de97d |
@@ -1860,19 +1851,15 @@ static QFontEngine *loadFontConfigFont(c
|
|
|
32de97d |
if (script == QFont::Latin)
|
|
|
32de97d |
// add Euro character
|
|
|
32de97d |
FcCharSetAddChar(cs, 0x20ac);
|
|
|
32de97d |
- if (script == QFont::Han_SimplifiedChinese)
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0x3400);
|
|
|
32de97d |
- if (script == QFont::Han_TraditionalChinese) {
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0x3435);
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0xE000);
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0xF6B1);
|
|
|
32de97d |
- }
|
|
|
32de97d |
- if (script == QFont::MiscellaneousSymbols)
|
|
|
32de97d |
- FcCharSetAddChar(cs, 0x2714);
|
|
|
32de97d |
FcPatternAddCharSet(pattern, FC_CHARSET, cs);
|
|
|
32de97d |
FcCharSetDestroy(cs);
|
|
|
32de97d |
}
|
|
|
32de97d |
|
|
|
32de97d |
+#ifdef FONT_MATCH_DEBUG
|
|
|
32de97d |
+ printf("final pattern contains:\n");
|
|
|
32de97d |
+ FcPatternPrint(pattern);
|
|
|
32de97d |
+#endif
|
|
|
32de97d |
+
|
|
|
32de97d |
QFontEngine *fe = 0;
|
|
|
32de97d |
|
|
|
32de97d |
for( int jj = (FcGetVersion() >= 20392 ? 0 : 1); jj < 2; ++jj ) {
|
|
|
32de97d |
--- src/kernel/qfontdatabase.cpp
|
|
|
32de97d |
+++ src/kernel/qfontdatabase.cpp
|
|
|
32de97d |
@@ -554,7 +554,7 @@ static const unsigned short sample_chars
|
|
|
32de97d |
// GeometricSymbols,
|
|
|
32de97d |
{ 0x2500, 0x0 },
|
|
|
32de97d |
// MiscellaneousSymbols,
|
|
|
32de97d |
- { 0x2640, 0x0 },
|
|
|
32de97d |
+ { 0x2640, 0x2714, 0x0 },
|
|
|
32de97d |
// EnclosedAndSquare,
|
|
|
32de97d |
{ 0x2460, 0x0 },
|
|
|
32de97d |
// Braille,
|