https://bugs.webkit.org/show_bug.cgi?id=65035
Source/WebCore:
Reviewed by Martin Robinson.
No new tests. This is already covered by fast/canvas/fillText-shadow.html.
Correct determine the size of rendered text using x and y bearing from the font
extents.
* platform/graphics/cairo/FontCairo.cpp:
(WebCore::drawGlyphsShadow): Use the x and y bearing to calculate text extents.
This gives a more accurate sizing and avoids clipping the edges of the shadow.
LayoutTests:
Reviewed by Martin Robinson
* platform/gtk/Skipped: Unskip a test that is now passing.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@111110
268f45cc-cd09-0410-ab3c-
d52691b4dbfc
+2012-03-16 Martin Robinson <mrobinson@igalia.com>
+
+ [Cairo] Text extent of shadowed text is calculated incorrectly
+ https://bugs.webkit.org/show_bug.cgi?id=65035
+
+ Reviewed by Martin Robinson
+
+ * platform/gtk/Skipped: Unskip a test that is now passing.
+
2012-03-16 Aaron Colwell <acolwell@chromium.org>
Rebaselines for compositing tests with video
http/tests/inspector/resource-parameters.html
-# Text shadow extents are calculated incorrectly
-# https://bugs.webkit.org/show_bug.cgi?id=65035
-fast/canvas/fillText-shadow.html
-
# Font feature settings is not implemented.
css3/font-feature-settings-rendering.html
+2012-03-16 Martin Robinson <mrobinson@igalia.com>
+
+ [Cairo] Text extent of shadowed text is calculated incorrectly
+ https://bugs.webkit.org/show_bug.cgi?id=65035
+
+ Reviewed by Martin Robinson.
+
+ No new tests. This is already covered by fast/canvas/fillText-shadow.html.
+
+ Correct determine the size of rendered text using x and y bearing from the font
+ extents.
+
+ * platform/graphics/cairo/FontCairo.cpp:
+ (WebCore::drawGlyphsShadow): Use the x and y bearing to calculate text extents.
+ This gives a more accurate sizing and avoids clipping the edges of the shadow.
+
2012-03-16 Kentaro Hara <haraken@chromium.org>
[Chromium][Performance] Optimize innerText and outerText in Chromium/Mac
cairo_text_extents_t extents;
cairo_scaled_font_glyph_extents(font->platformData().scaledFont(), glyphs, numGlyphs, &extents);
- FloatRect fontExtentsRect(point.x(), point.y() - extents.height, extents.width, extents.height);
+ FloatRect fontExtentsRect(point.x() + extents.x_bearing, point.y() + extents.y_bearing, extents.width, extents.height);
+
if (GraphicsContext* shadowContext = shadow.beginShadowLayer(graphicsContext, fontExtentsRect)) {
drawGlyphsToContext(shadowContext->platformContext()->cr(), font, glyphs, numGlyphs);
shadow.endShadowLayer(graphicsContext);