Summary: | REGRESSION (r12789): Second RTL text run on a line cannot be selected | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | mitz | ||||||
Component: | Layout and Rendering | Assignee: | Nobody <webkit-unassigned> | ||||||
Status: | VERIFIED FIXED | ||||||||
Severity: | Normal | CC: | harrison, justin.garcia | ||||||
Priority: | P1 | Keywords: | HasReduction, Regression | ||||||
Version: | 420+ | ||||||||
Hardware: | Mac | ||||||||
OS: | OS X 10.4 | ||||||||
Attachments: |
|
Description
mitz
2006-02-23 14:56:54 PST
Created attachment 6687 [details]
Test case
This bug is a result of Position::inRenderedText()'s assumption that RenderText's inline boxes are ordered by their start offset. This assumption is false in many bidi contexts. The same logic is used in at least two other places: Position::isRenderedCharacter() and RenderText::inlineBox(). Created attachment 6746 [details]
Fix the regression
This fixes inRenderedText() (which is responsible for this bug) and isRenderedCharacter(), but not other places where logical ordering of the text boxes is wrongly assumed. Those seem to be in editing code and require separate bugs and test cases.
Comment on attachment 6746 [details]
Fix the regression
These fixes seem to leave in an optimization for renderers that don't contain reversed text. But couldn't we just remove the optimization entirely?
I would think so. Before my patch, Position::inRenderedContent had this optimization but VisiblePosition::isCandidate() did not. Comment on attachment 6746 [details]
Fix the regression
Lets get this fix landed -- we can ponder whether to remove the regression altogether later.
r=me
Comment on attachment 6746 [details]
Fix the regression
I meant to say "we can ponder whether to remove the *optimization* altogether later".
|