Bug 1667138 - Do not skip backward word breaker r=emilio

Word breaking spaces could be incorrectly skipped if it was trimmed by CSS whitespace rules. This patch makes sure it can still break words when selecting text.

Differential Revision: https://phabricator.services.mozilla.com/D91494
This commit is contained in:
Kagami Sascha Rosylight
2020-09-28 15:07:33 +00:00
parent 37123965a8
commit 449d59dbca
2 changed files with 25 additions and 1 deletions

View File

@@ -7921,7 +7921,10 @@ bool ClusterIterator::NextCluster() {
mCharIndex = mIterator.GetOriginalOffset();
mIterator.AdvanceOriginal(1);
} else {
if (mIterator.GetOriginalOffset() <= mTrimmed.mStart) return false;
if (mIterator.GetOriginalOffset() <= mTrimmed.mStart) {
// Trimming can skip backward word breakers, see bug 1667138
return mHaveWordBreak;
}
mIterator.AdvanceOriginal(-1);
keepGoing = mIterator.IsOriginalCharSkipped() ||
mIterator.GetOriginalOffset() >= mTrimmed.GetEnd() ||