[SCM] WebKit Debian packaging branch, debian/unstable, updated. debian/1.1.15-1-40151-g37bb677

rjw rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Sat Sep 26 05:52:35 UTC 2009


The following commit has been merged in the debian/unstable branch:
commit 5e15ea5ea9cf9491a7ca352b1499156b9e44368b
Author: rjw <rjw at 268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Tue Nov 20 19:04:38 2001 +0000

    More changes tweaking the text layout/drawing implementation.
    Changed the size of the list item bullets.
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@465 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/khtml/rendering/render_list.cpp b/WebCore/khtml/rendering/render_list.cpp
index 21d00fa..3429f88 100644
--- a/WebCore/khtml/rendering/render_list.cpp
+++ b/WebCore/khtml/rendering/render_list.cpp
@@ -246,7 +246,13 @@ void RenderListMarker::printObject(QPainter *p, int, int,
     p->setFont(style()->font());
     p->setPen(style()->color());
     QFontMetrics fm = p->fontMetrics();
+#ifdef _KWQ_
+    // Why does khtml draw such large dots, squares, circle, etc for list items?
+    // These seem much bigger than competing browsers.  I've reduced the size.
+    int offset = fm.ascent()/3;
+#else
     int offset = fm.ascent()*2/3;
+#endif
 
 #ifdef BOX_DEBUG
     p->setPen( QColor("red") );
diff --git a/WebCore/kwq/KWQFontMetrics.mm b/WebCore/kwq/KWQFontMetrics.mm
index 15d8ba7..42242c9 100644
--- a/WebCore/kwq/KWQFontMetrics.mm
+++ b/WebCore/kwq/KWQFontMetrics.mm
@@ -79,6 +79,18 @@ const float LargeNumberForText = 1.0e7;
 static NSMutableDictionary *metricsCache = nil;
 
 @implementation KWQMetricsInfo
+
++ (void)drawString: (NSString *)string atPoint: (NSPoint)p withFont: (NSFont *)font color: (NSColor *)color
+{
+    KWQMetricsInfo *metricsCache = [KWQMetricsInfo getMetricsForFont: font];
+    NSLayoutManager *layoutManager = [metricsCache layoutManagerForString: string];
+    if (layoutManager != nil){
+        unsigned numberOfGlyphs = [layoutManager numberOfGlyphs];
+        [metricsCache setColor: color];
+        [layoutManager drawGlyphsForGlyphRange:NSMakeRange (0, numberOfGlyphs) atPoint:p];
+    }
+}
+
 + (KWQMetricsInfo *)getMetricsForFont: (NSFont *)aFont
 {
     KWQMetricsInfo *info = (KWQMetricsInfo *)[metricsCache objectForKey: aFont];
diff --git a/WebCore/kwq/KWQMetrics.h b/WebCore/kwq/KWQMetrics.h
index 2bc3066..bba5e2c 100644
--- a/WebCore/kwq/KWQMetrics.h
+++ b/WebCore/kwq/KWQMetrics.h
@@ -33,6 +33,7 @@
     NSMutableDictionary *fragmentCache;
 }
 
++ (void)drawString: (NSString *)string atPoint: (NSPoint)p withFont: (NSFont *)font color: (NSColor *)color;
 + (KWQMetricsInfo *)getMetricsForFont: (NSFont *)aFont;
 + (void)setMetric: (KWQMetricsInfo *)info forFont: (NSFont *)aFont;
 - initWithFont: (NSFont *)aFont;
diff --git a/WebCore/kwq/KWQPainter.mm b/WebCore/kwq/KWQPainter.mm
index a020c26..10a0acc 100644
--- a/WebCore/kwq/KWQPainter.mm
+++ b/WebCore/kwq/KWQPainter.mm
@@ -274,10 +274,11 @@ void QPainter::drawLine(int x1, int y1, int x2, int y2)
 }
 
 
+// This method is only used to draw the little circles used in lists.
 void QPainter::drawEllipse(int x, int y, int w, int h)
 {
     NSBezierPath *path;
-
+    
     path = [NSBezierPath bezierPathWithOvalInRect: NSMakeRect (x, y, w, h)];
     
     _lockFocus();
@@ -483,12 +484,13 @@ void QPainter::drawText(int x, int y, const QString &qstring, int len)
     y = y - (int)([font defaultLineHeightForFont] + [font descender]);
     //[string drawAtPoint:NSMakePoint(x, y) withAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, data->qpen.color().color, NSForegroundColorAttributeName, nil]];
 
-    KWQMetricsInfo *metricsCache = [KWQMetricsInfo getMetricsForFont: font];
-    NSLayoutManager *layoutManager = [metricsCache layoutManagerForString: string];
-    if (layoutManager != nil){
-        unsigned numberOfGlyphs = [layoutManager numberOfGlyphs];
-        [metricsCache setColor: data->qpen.color().color];
-        [layoutManager drawGlyphsForGlyphRange:NSMakeRange (0, numberOfGlyphs) atPoint:NSMakePoint(x, y)];
+    [KWQMetricsInfo drawString: string atPoint: NSMakePoint(x, y) withFont: font color: data->qpen.color().color];
+//    KWQMetricsInfo *metricsCache = [KWQMetricsInfo getMetricsForFont: font];
+//    NSLayoutManager *layoutManager = [metricsCache layoutManagerForString: string];
+//    if (layoutManager != nil){
+//        unsigned numberOfGlyphs = [layoutManager numberOfGlyphs];
+//        [metricsCache setColor: data->qpen.color().color];
+//        [layoutManager drawGlyphsForGlyphRange:NSMakeRange (0, numberOfGlyphs) atPoint:NSMakePoint(x, y)];
 
 /*
         [font set];
@@ -506,7 +508,7 @@ void QPainter::drawText(int x, int y, const QString &qstring, int len)
 
         [graphicsContext setShouldAntialias: flag];
 */
-    }
+//    }
 
 
     _unlockFocus();
diff --git a/WebCore/src/kdelibs/khtml/rendering/render_list.cpp b/WebCore/src/kdelibs/khtml/rendering/render_list.cpp
index 21d00fa..3429f88 100644
--- a/WebCore/src/kdelibs/khtml/rendering/render_list.cpp
+++ b/WebCore/src/kdelibs/khtml/rendering/render_list.cpp
@@ -246,7 +246,13 @@ void RenderListMarker::printObject(QPainter *p, int, int,
     p->setFont(style()->font());
     p->setPen(style()->color());
     QFontMetrics fm = p->fontMetrics();
+#ifdef _KWQ_
+    // Why does khtml draw such large dots, squares, circle, etc for list items?
+    // These seem much bigger than competing browsers.  I've reduced the size.
+    int offset = fm.ascent()/3;
+#else
     int offset = fm.ascent()*2/3;
+#endif
 
 #ifdef BOX_DEBUG
     p->setPen( QColor("red") );
diff --git a/WebCore/src/kwq/KWQFontMetrics.mm b/WebCore/src/kwq/KWQFontMetrics.mm
index 15d8ba7..42242c9 100644
--- a/WebCore/src/kwq/KWQFontMetrics.mm
+++ b/WebCore/src/kwq/KWQFontMetrics.mm
@@ -79,6 +79,18 @@ const float LargeNumberForText = 1.0e7;
 static NSMutableDictionary *metricsCache = nil;
 
 @implementation KWQMetricsInfo
+
++ (void)drawString: (NSString *)string atPoint: (NSPoint)p withFont: (NSFont *)font color: (NSColor *)color
+{
+    KWQMetricsInfo *metricsCache = [KWQMetricsInfo getMetricsForFont: font];
+    NSLayoutManager *layoutManager = [metricsCache layoutManagerForString: string];
+    if (layoutManager != nil){
+        unsigned numberOfGlyphs = [layoutManager numberOfGlyphs];
+        [metricsCache setColor: color];
+        [layoutManager drawGlyphsForGlyphRange:NSMakeRange (0, numberOfGlyphs) atPoint:p];
+    }
+}
+
 + (KWQMetricsInfo *)getMetricsForFont: (NSFont *)aFont
 {
     KWQMetricsInfo *info = (KWQMetricsInfo *)[metricsCache objectForKey: aFont];
diff --git a/WebCore/src/kwq/KWQMetrics.h b/WebCore/src/kwq/KWQMetrics.h
index 2bc3066..bba5e2c 100644
--- a/WebCore/src/kwq/KWQMetrics.h
+++ b/WebCore/src/kwq/KWQMetrics.h
@@ -33,6 +33,7 @@
     NSMutableDictionary *fragmentCache;
 }
 
++ (void)drawString: (NSString *)string atPoint: (NSPoint)p withFont: (NSFont *)font color: (NSColor *)color;
 + (KWQMetricsInfo *)getMetricsForFont: (NSFont *)aFont;
 + (void)setMetric: (KWQMetricsInfo *)info forFont: (NSFont *)aFont;
 - initWithFont: (NSFont *)aFont;
diff --git a/WebCore/src/kwq/KWQPainter.mm b/WebCore/src/kwq/KWQPainter.mm
index a020c26..10a0acc 100644
--- a/WebCore/src/kwq/KWQPainter.mm
+++ b/WebCore/src/kwq/KWQPainter.mm
@@ -274,10 +274,11 @@ void QPainter::drawLine(int x1, int y1, int x2, int y2)
 }
 
 
+// This method is only used to draw the little circles used in lists.
 void QPainter::drawEllipse(int x, int y, int w, int h)
 {
     NSBezierPath *path;
-
+    
     path = [NSBezierPath bezierPathWithOvalInRect: NSMakeRect (x, y, w, h)];
     
     _lockFocus();
@@ -483,12 +484,13 @@ void QPainter::drawText(int x, int y, const QString &qstring, int len)
     y = y - (int)([font defaultLineHeightForFont] + [font descender]);
     //[string drawAtPoint:NSMakePoint(x, y) withAttributes:[NSDictionary dictionaryWithObjectsAndKeys:font, NSFontAttributeName, data->qpen.color().color, NSForegroundColorAttributeName, nil]];
 
-    KWQMetricsInfo *metricsCache = [KWQMetricsInfo getMetricsForFont: font];
-    NSLayoutManager *layoutManager = [metricsCache layoutManagerForString: string];
-    if (layoutManager != nil){
-        unsigned numberOfGlyphs = [layoutManager numberOfGlyphs];
-        [metricsCache setColor: data->qpen.color().color];
-        [layoutManager drawGlyphsForGlyphRange:NSMakeRange (0, numberOfGlyphs) atPoint:NSMakePoint(x, y)];
+    [KWQMetricsInfo drawString: string atPoint: NSMakePoint(x, y) withFont: font color: data->qpen.color().color];
+//    KWQMetricsInfo *metricsCache = [KWQMetricsInfo getMetricsForFont: font];
+//    NSLayoutManager *layoutManager = [metricsCache layoutManagerForString: string];
+//    if (layoutManager != nil){
+//        unsigned numberOfGlyphs = [layoutManager numberOfGlyphs];
+//        [metricsCache setColor: data->qpen.color().color];
+//        [layoutManager drawGlyphsForGlyphRange:NSMakeRange (0, numberOfGlyphs) atPoint:NSMakePoint(x, y)];
 
 /*
         [font set];
@@ -506,7 +508,7 @@ void QPainter::drawText(int x, int y, const QString &qstring, int len)
 
         [graphicsContext setShouldAntialias: flag];
 */
-    }
+//    }
 
 
     _unlockFocus();

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list