| Issue 43951: | Some combining marks (Devanagari vowel signs, Latin/Cyrillic diacritics) are placed to the left of where they should be | |
| 12 people starred this issue and may be notified of changes. | Back to list |
Sign in to add a comment
|
1. Load the test page with Lohit Hindi font installed.
2. Note that U+0947 (vowel sign E) is misplaced and U+0938 ( 'SA' स) and
U+092E ('MA' : म ) overlap each other in Chrome. In Firefox (see the 2nd
attachment), neither problem is present.
Somehow, U+0938's advanced width seems to be calculated to be zero.
This is the string chunk with two problems above:
तक के समाचार
I believe this is a regression (I don't think I've seen this before, but I
might be wrong).
|
||||||||||||||||||||
,
May 26, 2010
(No comment was entered for this change.)
Owner: js...@chromium.org
Labels: Mstone-6 |
|||||||||||||||||||||
,
Jun 09, 2010
Thai has a similar issue with Droid Sans Thai. To Vivian, Song: I think it's a regression (but not sure). Can you narrow the regression window if it is? See http://crosbug.com/3931
Summary: Devanagari / Thai shaping broken
Cc: vivi...@chromium.org |
|||||||||||||||||||||
,
Jun 09, 2010
Oops. it's http://crosbug.com/3031 |
|||||||||||||||||||||
,
Jun 14, 2010
Issue 43713 has been merged into this issue. |
|||||||||||||||||||||
,
Jun 14, 2010
confirm this is a regression issue. works fine in Chrome linux build 4.0.250.0. reproduce it in the earliest 5.0 build available 5.0.340.0. unfortunately , all builds in between are no longer available.
Labels: Regression
|
|||||||||||||||||||||
,
Jun 17, 2010
http://build.chromium.org/buildbot/continuous/linux/ has all the builds including those between Dec and April. There were not many webkit changes relevant to this over that period. I'll try pairs of builds before and after each of those changes. |
|||||||||||||||||||||
,
Jun 22, 2010
WebCore/platform/graphics/chromium/FontLinux.cpp has only several CLs landed since December. I tried a build right (actually a couple of days) before each of those changes. Chrome r36951 (Jan 22, 2010) without http://trac.webkit.org/changeset/54020 and http://trac.webkit.org/changeset/53958 (both landed on Jan 27) works fine with hindi.html (attached above). Chrome r37619 (Jan 29, 2010) with those two has an issue. It's likely that webkit r54020 broke this. I'll look into it. |
|||||||||||||||||||||
,
Jun 22, 2010
I looked into this. Here's a paste of a message I just wrote: A text shaper takes Unicode as input and outputs a series of glyphs with positioning information. There are two interesting metrics. One is the advance: amount to more forward per glyph, and and the other offset: how to offset the glyph relative to the current position. For a plain letter the advance is the width and the offset is zero; for a combining character, like say adding a bar over the previous letter, the advance is zero and the offset is computed by language-dependent rules in the shaper. Previously we didn't obey the offset when shaping, because we were providing the wrong glyph metrics and the offset was nonsense. Fixing both of those bugs fixed Hebrew vowel positioning. But it broke this pair of letters: के. The line above is supposed to be centered above the letter it's paired with. It turns out that this "worked" before because the line above by default has a negative left edge, so if we naively just laid it out "after" the letter it would appear above it. I traced through a bunch of code but I can't tell what is going wrong; perhaps the Indic shaper is wrong in that it doesn't know to produce an offset that moves it back over to the right; perhaps Skia/FreeType are wrong in computing the left extent of the glyph so far negative. (FreeType's ftgrid shows the glyph to the left of the origin, so it doesn't seem unreasonable.) At least I fixed another bug in this area while I was at it! |
|||||||||||||||||||||
,
Jun 22, 2010
(Oh, and the latter bug I mentioned fixing will fix the overlapping chars issue https://bugs.webkit.org/show_bug.cgi?id=40966 ) |
|||||||||||||||||||||
,
Jun 23, 2010
The same happens with diacritic marks like U+0301. bug 44646 has exactly the same two issues as this one (see bug 44646 comment 12). I changed it to deal with the second issue (overlapping characters) and using this one to track the first issue
Summary: Some combining marks (Devanagari vowel signs, Latin/Cyrillic diacritics) are placed to the left of where they should be
|
|||||||||||||||||||||
,
Jun 23, 2010
I fixed this one last night! It will take me a while to get it through all the necessary review processes though. :\
Status: Started
Owner: e...@chromium.org |
|||||||||||||||||||||
,
Jun 24, 2010
BTW, an explanation: the bug is that basically we end up misreading the GPOS offsets. The regression was caused by a fix elsewhere causing us to start obeying the GPOS offsets (even though they are wrong). |
|||||||||||||||||||||
,
Jun 25, 2010
(No comment was entered for this change.)
Cc: -a...@chromium.org
|
|||||||||||||||||||||
,
Jun 30, 2010
Evan, have you filed a bug in the webkit bug db? A point would be nice. Thanks ! |
|||||||||||||||||||||
,
Jun 30, 2010
I uploaded my patch here: https://bugs.webkit.org/show_bug.cgi?id=41435 |
|||||||||||||||||||||
,
Jul 06, 2010
This issue also affects Bengali vowel signs that are put on the top or bottom of the previous letter (in certain font but not in all). Thanks for fixing the character overlapping issue. (Chrome 6.0.453.1 dev in Kubuntu 10.04). |
|||||||||||||||||||||
,
Aug 05, 2010
Not gonna get to these soon, sorry.
Labels: Mstone-7
|
|||||||||||||||||||||
,
Aug 23, 2010
Is it possible to get the priority of this problem raised? Currently formatting for Thai text is pretty horrible, with certain characters sometimes disappearing off the left edge of the page. It's really a struggle to read, so is a big barrier to Chromium/Chrome adoption in Thailand. |
|||||||||||||||||||||
,
Aug 23, 2010
I agree with #18; this bug should be given higher priority. This bug affects almost all Indic users as well. What's worst: this bug often completely changes the meaning of a word by putting the vowel sign on previous letter. |
|||||||||||||||||||||
| ► Sign in to add a comment | |||||||||||||||||||||