Closed Bug 755994 Opened 9 years ago Closed 9 years ago

CSS text-shadow is incorrectly rendered for selected RTL text

Categories

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

defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla15

People

(Reporter: tsdodo, Assigned: smontagu)

References

Details

(Keywords: regression)

Attachments

(3 files, 1 obsolete file)

User Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0
Build ID: 20120420145725

Steps to reproduce:

I selected right-to-left text with a text-shadow CSS rule.


Actual results:

The shadow disappeared on each line on which a selection was active except for a tiny area on the right-most side.


Expected results:

The shadow should have rendered as it would in selecting left-to-right text.
Component: Untriaged → Layout: Text
Product: Firefox → Core
QA Contact: untriaged → layout.fonts-and-text
Assignee: nobody → smontagu
Attached patch PatchSplinter Review
This is essentially a one-line patch: for RTL we need to calculate the left edge of the selection as xoffset - width in the call to PaintOneShadow, just as we do in the call to FillClippedRect a few lines above.

In practice it's a bit more complicated: to get at the width for the calculation, I've had to pull the call to MeasureText out of PaintOneShadow to the callers. Measuring the text only once when there are multiple shadows should also be a modest performance win.
Attachment #624697 - Flags: review?(roc)
Attached patch Reftests (obsolete) — Splinter Review
These are just copies of the existing text-shadow-selected-1* tests with RTL text.
Attachment #624699 - Flags: review?(roc)
Updated reftests using <bdo> -- using Hebrew has font issues.
Attachment #624699 - Attachment is obsolete: true
Attachment #624699 - Flags: review?(roc)
Attachment #624700 - Flags: review?(roc)
Attached file Testcase
Status: UNCONFIRMED → ASSIGNED
Ever confirmed: true
OS: Windows 7 → All
Hardware: x86_64 → All
Version: 12 Branch → Trunk
You need to log in before you can comment on or make changes to this bug.