| Index: platform/graphics/FontFastPath.cpp
|
| ===================================================================
|
| --- platform/graphics/FontFastPath.cpp (revision 60058)
|
| +++ platform/graphics/FontFastPath.cpp (working copy)
|
| @@ -196,8 +196,15 @@
|
| return s_codePath;
|
|
|
| // Start from 0 since drawing and highlighting also measure the characters before run->from
|
| + // FIXME: Should use a UnicodeSet in ports where ICU is used. Note that we
|
| + // can't simply use UnicodeCharacter Property/class because some characters
|
| + // are not 'combining', but still need to go to the complex path.
|
| for (int i = 0; i < run.length(); i++) {
|
| const UChar c = run[i];
|
| + if (c < 0x02E5) // U+02E5 through U+02E9 (Modifier Letters : Tone letters)
|
| + continue;
|
| + if (c <= 0x02E9)
|
| + return Complex;
|
| if (c < 0x300) // U+0300 through U+036F Combining diacritical marks
|
| continue;
|
| if (c <= 0x36F)
|
| @@ -218,7 +225,7 @@
|
| if (c <= 0x11FF)
|
| return Complex;
|
|
|
| - if (c < 0x1780) // U+1780 through U+18AF Khmer, Mongolian
|
| + if (c < 0x1700) // U+1700 through U+18AF Tagalog, Hanunoo, Buhid, Tagbanwa, Khmer, Mongolian
|
| continue;
|
| if (c <= 0x18AF)
|
| return Complex;
|
| @@ -228,6 +235,21 @@
|
| if (c <= 0x194F)
|
| return Complex;
|
|
|
| + if (c < 0x1980) // U+1980 through U+19DF New Tai Lue
|
| + continue;
|
| + if (c <= 0x19DF)
|
| + return Complex;
|
| +
|
| + if (c < 0x1A00) // U+1A00 through U+1C4F Buginese, Balinese, Lepcha
|
| + continue;
|
| + if (c <= 0x1C4F)
|
| + return Complex;
|
| +
|
| + if (c < 0x1DC0) // U+1DC0 through U+1DFF Comining diacritical mark supplement
|
| + continue;
|
| + if (c <= 0x1DFF)
|
| + return Complex;
|
| +
|
| if (c < 0x1E00) // U+1E00 through U+2000 characters with diacritics and stacked diacritics
|
| continue;
|
| if (c <= 0x2000)
|
| @@ -238,6 +260,14 @@
|
| if (c <= 0x20FF)
|
| return Complex;
|
|
|
| + if (c < 0xA800) // U+A800 through U+ABFF : Nagri, Phags-pa, Saurashtra, Hangul Jamo Ext. A, Meetei Mayek
|
| + continue;
|
| + if (c <= 0xABFF)
|
| + return Complex;
|
| + if (c < 0xD7B0) // U+D7B0 through U+D7FF : Hangul Jamo Ext. B
|
| + continue;
|
| + if (c <= 0xD7FF)
|
| + return Complex;
|
| if (c < 0xFE20) // U+FE20 through U+FE2F Combining half marks
|
| continue;
|
| if (c <= 0xFE2F)
|
|
|