another small fix for letter spacing
authorlars <lars@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Jun 2007 11:02:04 +0000 (11:02 +0000)
committerlars <lars@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 21 Jun 2007 11:02:04 +0000 (11:02 +0000)
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@23713 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/qt/FontQt.cpp

index 544b97b2f90daca121dab6c1be6a35bfc43075b4..43a90413b45a13f9288f1fca8bbbb1ab75c774bf 100644 (file)
@@ -1,3 +1,12 @@
+2007-06-21  Lars Knoll  <lars@trolltech.com>
+
+        Reviewed by Simon.
+
+        another small fix for letter spacing
+
+        * platform/qt/FontQt.cpp:
+        (WebCore::generateComponents):
+
 2007-06-21  Lars Knoll  <lars@trolltech.com>
 
         Reviewed by Simon.
index 3418557b9a9e7ef342fa7a2eca054f593aa2b243..eeadf48051d51b6aba45b29b12d35ef6029678a3 100644 (file)
@@ -157,6 +157,7 @@ static int generateComponents(Vector<TextRunComponent, 1024>* components, const
             }
             offset += add + letterSpacing + font.spaceWidth();
             start = 1;
+//         qDebug() << "space at 0" << offset;
         } else if (smallCaps) {
             f = (QChar::category(run[0]) == QChar::Letter_Lowercase ? &font.scFont() : &font.font());
         }
@@ -197,9 +198,10 @@ static int generateComponents(Vector<TextRunComponent, 1024>* components, const
             if (i - start > 0) {
                 components->append(TextRunComponent(run.characters() + start, i - start, f, offset, f == &font.scFont()));
                 offset += components->last().width + letterSpacing;
-//                 qDebug() << "   appending(2) " << components->last().string << components->last().width;
+                qDebug() << "   appending(2) " << components->last().string << components->last().width;
             }
-            f = (QChar::category(ch) == QChar::Letter_Lowercase ? &font.scFont() : &font.font());
+            if (smallCaps)
+                f = (QChar::category(ch) == QChar::Letter_Lowercase ? &font.scFont() : &font.font());
             start = i;
         }
         if (run.length() - start > 0) {
@@ -208,7 +210,8 @@ static int generateComponents(Vector<TextRunComponent, 1024>* components, const
             offset += components->last().width;
 //             qDebug() << "   appending(3) " << components->last().string << components->last().width;
         }
-    } else { //if (padding || m_wordSpacing) {
+        offset += letterSpacing;
+    } else {
         int start = 0;
         for (int i = 0; i < run.length(); ++i) {
             if (Font::treatAsSpace(run[i])) {
@@ -260,7 +263,7 @@ int Font::width(const TextRun& run, const TextStyle& style) const
     Vector<TextRunComponent, 1024> components;
     int w = generateComponents(&components, *this, run, style);
 
-//     qDebug() << "     width=" << w;
+    qDebug() << "     width=" << w;
     return w;
 }