Bug 1518401 - Exclude caret position within ligated emoji sequence where the second component was a BMP symbol + VS16. r=m_kato

This commit is contained in:
Jonathan Kew 2019-01-09 10:13:40 +00:00
Родитель 12266f8fb5
Коммит a739d36dde
1 изменённых файлов: 4 добавлений и 1 удалений

Просмотреть файл

@ -7814,7 +7814,10 @@ static bool IsAcceptableCaretPosition(const gfxSkipCharsIterator& aIter,
(NS_IS_LOW_SURROGATE(ch) && offs > 0 &&
NS_IS_HIGH_SURROGATE(frag->CharAt(offs - 1))) ||
(!aTextRun->IsLigatureGroupStart(index) &&
unicode::GetEmojiPresentation(ch) == unicode::EmojiDefault)) {
(unicode::GetEmojiPresentation(ch) == unicode::EmojiDefault ||
(unicode::GetEmojiPresentation(ch) == unicode::TextDefault &&
offs + 1 < frag->GetLength() &&
frag->CharAt(offs + 1) == gfxFontUtils::kUnicodeVS16)))) {
return false;
}