[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: qt-copy/src/kernel
From: Stephan Kulow <coolo () kde ! org>
Date: 2004-06-26 10:15:42
Message-ID: 20040626101542.3F7581BAB () office ! kde ! org
[Download RAW message or body]
CVS commit by coolo:
I wonder why I forgot to commit:
avoid wrong cache misses with unicode encodings (patch by Lars)
M +10 -1 qfontdatabase.cpp 1.64
M +13 -1 qfontdatabase_x11.cpp 1.35
--- qt-copy/src/kernel/qfontdatabase.cpp #1.63:1.64
@@ -921,4 +921,5 @@ QFontDatabase::findFont( QFont::Script s
request.weight, request.italic, request.stretch, request.pixelSize, pitch );
+ bool usesFontConfig = FALSE;
#ifdef QT_XFT2
if (family_name.isEmpty()
@@ -927,4 +928,5 @@ QFontDatabase::findFont( QFont::Script s
|| family_name == "Monospace") {
fe = loadFontConfigFont(fp, request, script);
+ usesFontConfig = (fe != 0);
}
if (!fe)
@@ -1135,5 +1137,10 @@ QFontDatabase::findFont( QFont::Script s
if ( fp ) {
- QFontCache::Key key( request, script,
+ QFontDef def = request;
+ if (def.family.isEmpty()) {
+ def.family = fp->request.family;
+ def.family = def.family.left(def.family.find(','));
+ }
+ QFontCache::Key key( def, script,
#ifdef Q_WS_WIN
(int)fp->paintdevice
@@ -1143,4 +1150,5 @@ QFontDatabase::findFont( QFont::Script s
);
QFontCache::instance->insertEngine( key, fe );
+ if (!usesFontConfig) {
for ( int i = 0; i < QFont::NScripts; ++i ) {
if ( i == script ) continue;
@@ -1153,4 +1161,5 @@ QFontDatabase::findFont( QFont::Script s
}
}
+ }
} else {
if ( request.family.isEmpty() ) {
--- qt-copy/src/kernel/qfontdatabase_x11.cpp #1.34:1.35
@@ -974,6 +974,9 @@ static void loadXft()
= family->foundry( QString::null, TRUE );
- for ( int i = 0; i < QFont::LastPrivateScript; ++i )
+ for ( int i = 0; i < QFont::LastPrivateScript; ++i ) {
+ if (i == QFont::UnknownScript)
+ continue;
family->scripts[i] = QtFontFamily::Supported;
+ }
QtFontStyle::Key styleKey;
@@ -1502,4 +1505,9 @@ QFontEngine *loadEngine( QFont::Script s
// add Euro character
FcCharSetAddChar(cs, 0x20ac);
+ if (script == QFont::MathematicalOperators)
+ FcCharSetAddChar(cs, 0x2190);
+ if (script == QFont::MiscellaneousSymbols)
+ FcCharSetAddChar(cs, 0x274d);
+
FcPatternAddCharSet(pattern, FC_CHARSET, cs);
FcCharSetDestroy(cs);
@@ -1755,4 +1763,8 @@ static QFontEngine *loadFontConfigFont(c
// add Euro character
FcCharSetAddChar(cs, 0x20ac);
+ if (script == QFont::MathematicalOperators)
+ FcCharSetAddChar(cs, 0x2190);
+ if (script == QFont::MiscellaneousSymbols)
+ FcCharSetAddChar(cs, 0x274d);
FcPatternAddCharSet(pattern, FC_CHARSET, cs);
FcCharSetDestroy(cs);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic