Index: Source/platform/fonts/harfbuzz/FontHarfBuzz.cpp |
diff --git a/Source/platform/fonts/harfbuzz/FontHarfBuzz.cpp b/Source/platform/fonts/harfbuzz/FontHarfBuzz.cpp |
index d21f7e9155210ce667e9c8827fd2ea7d749766b9..6bf4cb33b3364ea019e52992da05edbb405a282e 100644 |
--- a/Source/platform/fonts/harfbuzz/FontHarfBuzz.cpp |
+++ b/Source/platform/fonts/harfbuzz/FontHarfBuzz.cpp |
@@ -85,9 +85,15 @@ static void paintGlyphs(GraphicsContext* gc, const SimpleFontData* font, |
paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding); |
if (textMode & TextModeFill) { |
- // If we also filled, we don't want to draw shadows twice. |
- // See comment in FontChromiumWin.cpp::paintSkiaText() for more details. |
- // Since we use the looper for shadows, we remove it (if any) now. |
+ // If there is a shadow and we filled above, there will already be |
+ // a shadow. We don't want to draw it again or it will be too dark |
+ // and it will go on top of the fill. |
+ // |
+ // Note that this isn't strictly correct, since the stroke could be |
+ // very thick and the shadow wouldn't account for this. The "right" |
+ // thing would be to draw to a new layer and then draw that layer |
+ // with a shadow. But this is a lot of extra work for something |
+ // that isn't normally an issue. |
paint.setLooper(0); |
} |