Open Bug 1224522 Opened 9 years ago Updated 2 years ago

Coloring overlapping Arabic glyphs is broken

Categories

(Core :: Layout: Text and Fonts, defect)

defect

Tracking

()

People

(Reporter: khaled, Unassigned)

References

Details

(Keywords: regression)

Attachments

(1 file)

See for example:
data:text/html,<div style="font:120px/100px Scheherazade; color:red">%26%23x644;<span style="color:blue">%26%23x627;</div>

The lam (in red) is shown correctly, but the alef (in blue) is clipped. This used to work correctly and I’m not sure when it was broken.
Status: UNCONFIRMED → NEW
Ever confirmed: true
From testing mozilla-central builds, this regressed on 2014-09-04, which points to a range:
  https://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=e58842c764dd&tochange=776fa9cf70cd

Looking at that range, I'd say the culprit is:
  2bea22f534f0  Matt Woodrow — Bug 1059033 - Part 6: Clip text drawing to its bound so we can skip unaffected tiles. r=Bas
Blocks: 1059033
OS: Linux → All
Hardware: x86_64 → All
Version: 42 Branch → Trunk
I confirmed locally that commenting-out the Clip() call in nsDisplayText::Paint() restores the correct rendering of this example.
If the clip is breaking rendering, then it means that we extents we computed for the text are wrong.

Even without the clip, we'd still get invalidation problems, so we need to fix this by computing the right extents for this font.
Would this be because glyphs are clipped to their advances instead of bounding (ink) box? Hmm this would have affected things like italic f, but it does not seem to be the case:
data:text/html,<div style="font:italic 120px/100px serif; color:red">f<span style="color:blue">n</div>

Would it be something RTL-specific, like in bug 1318539?
Actually, similar clipping happens to italic f when the text is selected, and the Arabic case becomes even worse as now also the right glyph gets clipped.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: