2009-03-04 Adam Langley <agl@google.com>
authoreric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Mar 2009 00:57:10 +0000 (00:57 +0000)
committereric@webkit.org <eric@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 5 Mar 2009 00:57:10 +0000 (00:57 +0000)
        Reviewed by Darin Fisher.

        Chromium Linux: change some metrics to better match Windows after
        r41416. Aesthetically this may be worse, but web-compat is king.

        Also, the previous code had an off by one error when drawing
        scrollbars which caused the scrollbar to overflow it's bounds by 1px
        at the right and bottom edges.

        https://bugs.webkit.org/show_bug.cgi?id=24369

        * rendering/RenderThemeChromiumLinux.cpp:
        (WebCore::):
        (WebCore::RenderThemeChromiumLinux::systemFont):
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        (WebCore::ScrollbarThemeChromium::paintTrackPiece):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@41437 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/platform/chromium/ScrollbarThemeChromiumLinux.cpp
WebCore/rendering/RenderThemeChromiumLinux.cpp

index d265bc32b431f5d47ff45bcef068b09db3d984c8..e6a330e2669638008b878b8d6e8ba154a2072105 100644 (file)
@@ -1,3 +1,22 @@
+2009-03-04  Adam Langley  <agl@google.com>
+
+        Reviewed by Darin Fisher.
+
+        Chromium Linux: change some metrics to better match Windows after
+        r41416. Aesthetically this may be worse, but web-compat is king.
+
+        Also, the previous code had an off by one error when drawing
+        scrollbars which caused the scrollbar to overflow it's bounds by 1px
+        at the right and bottom edges.
+
+        https://bugs.webkit.org/show_bug.cgi?id=24369
+
+        * rendering/RenderThemeChromiumLinux.cpp:
+        (WebCore::):
+        (WebCore::RenderThemeChromiumLinux::systemFont):
+        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
+        (WebCore::ScrollbarThemeChromium::paintTrackPiece):
+
 2009-03-04  Eric Seidel  <eric@webkit.org>
 
         Reviewed by Adam Roben.
index 11e24720a4391880db240da64db748afab064519..a2d9760e6c3c9bc112187d92b499932f33d96208 100644 (file)
@@ -65,9 +65,9 @@ void ScrollbarThemeChromium::paintTrackPiece(GraphicsContext* gc, Scrollbar* scr
 
     paint.setARGB(0xff, 0xc5, 0xba, 0xb0);
     canvas->drawLine(rect.x(), rect.y(), rect.x(), bottom, paint);
-    canvas->drawLine(right, rect.y(), right, bottom, paint);
-    canvas->drawLine(rect.x(), rect.y(), right, rect.y(), paint);
-    canvas->drawLine(rect.x(), bottom, right, bottom, paint);
+    canvas->drawLine(right - 1, rect.y(), right - 1, bottom, paint);
+    canvas->drawLine(rect.x(), rect.y(), right - 1, rect.y(), paint);
+    canvas->drawLine(rect.x(), bottom - 1, right - 1, bottom - 1, paint);
 }
 
 void ScrollbarThemeChromium::paintButton(GraphicsContext* gc, Scrollbar* scrollbar,
index 821e50dbfd61436cbc9f1d55f94a416dbdf79e35..8d5994fc94dae915a76910c998328bb5638f4d65 100644 (file)
@@ -47,7 +47,12 @@ enum PaddingType {
     LeftPadding
 };
 
-static const int styledMenuListInternalPadding[4] = { 1, 16, 1, 4 };
+static const int styledMenuListInternalPadding[4] = { 1, 4, 1, 4 };
+
+// The default variable-width font size.  We use this as the default font
+// size for the "system font", and as a base size (which we then shrink) for
+// form control fonts.
+static const float DefaultFontSize = 16.0;
 
 static bool supportsFocus(ControlPart appearance)
 {
@@ -141,8 +146,23 @@ double RenderThemeChromiumLinux::caretBlinkInterval() const
 
 void RenderThemeChromiumLinux::systemFont(int propId, Document* document, FontDescription& fontDescription) const
 {
+    float fontSize = DefaultFontSize;
+
+    switch (propId) {
+    case CSSValueWebkitMiniControl:
+    case CSSValueWebkitSmallControl:
+    case CSSValueWebkitControl:
+        // Why 2 points smaller? Because that's what Gecko does. Note that we
+        // are assuming a 96dpi screen, which is the default that we use on
+        // Windows.
+        static const float pointsPerInch = 72.0f;
+        static const float pixelsPerInch = 96.0f;
+        fontSize -= (2.0f / pointsPerInch) * pixelsPerInch;
+        break;
+    }
+
     fontDescription.firstFamily().setFamily(defaultGUIFont(NULL));
-    fontDescription.setSpecifiedSize(12);
+    fontDescription.setSpecifiedSize(fontSize);
     fontDescription.setIsAbsoluteSize(true);
     fontDescription.setGenericFamily(FontDescription::NoFamily);
     fontDescription.setWeight(FontWeightNormal);