<rdar://problem/9018212> Underline thickness is not uniform under non-integral scale...
[WebKit-https.git] / Source / WebCore / ChangeLog
index dca05b8..e92d4ff 100644 (file)
@@ -1,3 +1,34 @@
+2011-04-07  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        <rdar://problem/9018212> Underline thickness is not uniform under non-integral scale factor
+        https://bugs.webkit.org/show_bug.cgi?id=58083
+
+        Test: fast/text/decorations-transformed.html
+
+        * platform/graphics/GraphicsContext.h: Added a RoundingMode enum with two values. RoundAllSides
+        is the existing rounding mode, where each side of the rectangle snaps to the nearest pixel
+        gridline. RoundOriginAndDimensions snaps the origin to the nearest pixel gridpoint and rounds
+        the width and the height. In this new mode, translating a rectangle in user space never changes
+        its dimensions in device pixels.
+        * platform/graphics/cg/GraphicsContextCG.cpp:
+        (WebCore::GraphicsContext::roundToDevicePixels): Implemented RoundOriginAndDimensions.
+        (WebCore::GraphicsContext::drawLineForText): Use RoundOriginAndDimensions, thus ensuring that
+        all underlines have the same thickness in device pixels.
+        * platform/graphics/openvg/GraphicsContextOpenVG.cpp:
+        (WebCore::GraphicsContext::roundToDevicePixels): Added RoundingMode parameter, but did not implement it.
+        * platform/graphics/qt/GraphicsContextQt.cpp:
+        (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
+        * platform/graphics/skia/GraphicsContextSkia.cpp:
+        (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
+        * platform/graphics/wince/GraphicsContextWinCE.cpp:
+        (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
+        * platform/graphics/wx/GraphicsContextWx.cpp:
+        (WebCore::GraphicsContext::roundToDevicePixels): Ditto.
+        * rendering/InlineTextBox.cpp:
+        (WebCore::InlineTextBox::paintDecoration):
+
 2011-04-06  Vitaly Repeshko  <vitalyr@chromium.org>
 
         Reviewed by Nate Chapin.