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

Reply via email to