Репозиторий Sisyphus
Последнее обновление: 1 октября 2023 | Пакетов: 18631 | Посещений: 37877962
en ru br
Репозитории ALT
S:3.3.8d-alt16.1
5.1: 3.3.8b-alt7
4.1: 3.3.8b-alt2.qa1
4.0: 3.3.8b-alt0.M40.1
3.0: 3.3.4-alt6
+updates:3.3.4-alt6.3.M30
www.altlinux.org/Changes

Группа :: Система/Библиотеки
Пакет: qt3

 Главная   Изменения   Спек   Патчи   Sources   Загрузить   Gear   Bugs and FR  Repocop 

Патч: qt-font-default-subst.diff
Скачать


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