DescriptionCollapsed space never worked properly if we have spaces inside and/or after a Bidi-isolate.
The problem happens in two parts of the code:
1. The midpointState is not updated properly in addFakeRunIfNecessary. So when
an isolated run is added the next midpoint state is wrong.
2. Since isolated runs have a two pass algorithm. In the second pass the
midpoint state is wrong.
This patches fixes the first problem implementing a method called
adjustMidpointsAndAppendRunsForObjectIfNeeded, when a fake run is added it basically
updates the midpointState properly. And the second problem is fixed
saving and restoring the midpointState for Bidi-isolate inlines.
Additionally, with the recent modifications, the fake run needs to have width
zero because constructBidiRunsForSegment not necessary will replace the fake
run with a valid run.
BUG=304701
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=159203
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=160400
Patch Set 1 #
Total comments: 2
Patch Set 2 : Proposed patch v2 #
Total comments: 1
Patch Set 3 : Proposed patch v3 #Patch Set 4 : Proposed patch fixing crash #
Total comments: 3
Patch Set 5 : Proposed patch #Patch Set 6 : Rebased patch #Messages
Total messages: 16 (0 generated)
|