summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/FontFastPath.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics/FontFastPath.cpp')
-rw-r--r--WebCore/platform/graphics/FontFastPath.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/FontFastPath.cpp b/WebCore/platform/graphics/FontFastPath.cpp
index 82f970f..f0dd33e 100644
--- a/WebCore/platform/graphics/FontFastPath.cpp
+++ b/WebCore/platform/graphics/FontFastPath.cpp
@@ -74,8 +74,23 @@ GlyphData Font::glyphDataForCharacter(UChar32 c, bool mirror, bool forceSmallCap
page = node->page();
if (page) {
GlyphData data = page->glyphDataForCharacter(c);
- if (data.fontData)
+ if (data.fontData) {
+ if (data.fontData->platformData().orientation() == Vertical && data.fontData->orientation() == Horizontal && Font::isCJKIdeograph(c)) {
+ const SimpleFontData* ideographFontData = data.fontData->brokenIdeographFontData();
+ GlyphPageTreeNode* ideographNode = GlyphPageTreeNode::getRootChild(ideographFontData, pageNumber);
+ const GlyphPage* ideographPage = ideographNode->page();
+ if (ideographPage) {
+ GlyphData data = ideographPage->glyphDataForCharacter(c);
+ if (data.fontData)
+ return data;
+ }
+
+ // Shouldn't be possible to even reach this point.
+ ASSERT_NOT_REACHED();
+ }
return data;
+ }
+
if (node->isSystemFallback())
break;
}