summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/fonts
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-10-02 13:50:20 -0700
committerChris Craik <ccraik@google.com>2012-10-02 13:50:20 -0700
commit85fb59060a0fdfcff93ae1c70dd49e0f93e55ab6 (patch)
treec05d501db2bb2bc6cd263beddd5f2314a539d154 /Source/WebCore/platform/graphics/android/fonts
parent224e946b3cabeaa9c360bdd6865485b5acb34cdc (diff)
downloadexternal_webkit-85fb59060a0fdfcff93ae1c70dd49e0f93e55ab6.zip
external_webkit-85fb59060a0fdfcff93ae1c70dd49e0f93e55ab6.tar.gz
external_webkit-85fb59060a0fdfcff93ae1c70dd49e0f93e55ab6.tar.bz2
Compensate for canvas-side vertical text translation in bounding box computation
bug:7267294 Change-Id: Ia6de9264b6c3680707b8fb8833d69d7cc7e850e8
Diffstat (limited to 'Source/WebCore/platform/graphics/android/fonts')
-rw-r--r--Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp b/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp
index fcb78ed..03d2fb2 100644
--- a/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp
+++ b/Source/WebCore/platform/graphics/android/fonts/FontAndroid.cpp
@@ -218,8 +218,11 @@ void Font::drawGlyphs(GraphicsContext* gc, const SimpleFontData* font,
point.xy + [width, height, width, height, ...], so we have to convert
*/
- if (font->platformData().orientation() == Vertical)
- y += SkFloatToScalar(font->fontMetrics().floatAscent(IdeographicBaseline) - font->fontMetrics().floatAscent());
+ if (font->platformData().orientation() == Vertical) {
+ float yOffset = SkFloatToScalar(font->fontMetrics().floatAscent(IdeographicBaseline) - font->fontMetrics().floatAscent());
+ gc->platformContext()->setTextOffset(FloatSize(0.0f, -yOffset)); // compensate for offset in bounds calculation
+ y += yOffset;
+ }
if (EmojiFont::IsAvailable()) {
// set filtering, to make scaled images look nice(r)
@@ -272,6 +275,9 @@ void Font::drawGlyphs(GraphicsContext* gc, const SimpleFontData* font,
if (font->platformData().orientation() == Vertical)
canvas->restore();
}
+
+ if (font->platformData().orientation() == Vertical)
+ gc->platformContext()->setTextOffset(FloatSize()); // reset to undo above
}
void Font::drawEmphasisMarksForComplexText(WebCore::GraphicsContext*, WebCore::TextRun const&, WTF::AtomicString const&, WebCore::FloatPoint const&, int, int) const