Title: [186862] trunk/Source/WebCore
- Revision
- 186862
- Author
- [email protected]
- Date
- 2015-07-15 14:54:44 -0700 (Wed, 15 Jul 2015)
Log Message
[WinCairo] font fallback not working
https://bugs.webkit.org/show_bug.cgi?id=146595
Patch by Jinyoung Hur <[email protected]> on 2015-07-15
Reviewed by Myles C. Maxfield.
A Win32 API, GetGlyphIndices(), is not used properly, so any glyphs are considered existing in a font and it prevents the font fall back mechanism from working.
I think a specific font should be newly installed on the test machine to test this case but I have no idea how can it be done.
* platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
(WebCore::GlyphPage::fill):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (186861 => 186862)
--- trunk/Source/WebCore/ChangeLog 2015-07-15 21:46:07 UTC (rev 186861)
+++ trunk/Source/WebCore/ChangeLog 2015-07-15 21:54:44 UTC (rev 186862)
@@ -1,3 +1,17 @@
+2015-07-15 Jinyoung Hur <[email protected]>
+
+ [WinCairo] font fallback not working
+ https://bugs.webkit.org/show_bug.cgi?id=146595
+
+ Reviewed by Myles C. Maxfield.
+
+ A Win32 API, GetGlyphIndices(), is not used properly, so any glyphs are considered existing in a font and it prevents the font fall back mechanism from working.
+
+ I think a specific font should be newly installed on the test machine to test this case but I have no idea how can it be done.
+
+ * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
+ (WebCore::GlyphPage::fill):
+
2015-07-15 Tim Horton <[email protected]>
Factor rect shrink-wrapping code out of RenderThemeMac for future reuse
Modified: trunk/Source/WebCore/platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp (186861 => 186862)
--- trunk/Source/WebCore/platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp 2015-07-15 21:46:07 UTC (rev 186861)
+++ trunk/Source/WebCore/platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp 2015-07-15 21:54:44 UTC (rev 186862)
@@ -48,12 +48,12 @@
SelectObject(dc, fontData->platformData().hfont());
WORD localGlyphBuffer[GlyphPage::size * 2];
- DWORD result = GetGlyphIndices(dc, buffer, bufferLength, localGlyphBuffer, 0);
+ DWORD result = GetGlyphIndices(dc, buffer, bufferLength, localGlyphBuffer, GGI_MARK_NONEXISTING_GLYPHS);
bool success = result != GDI_ERROR && static_cast<unsigned>(result) == bufferLength;
if (success) {
for (unsigned i = 0; i < length; i++) {
Glyph glyph = localGlyphBuffer[i];
- if (!glyph)
+ if (glyph == 0xffff)
setGlyphDataForIndex(offset + i, 0, 0);
else {
setGlyphDataForIndex(offset + i, glyph, fontData);
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes