mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-23 21:01:08 +00:00
Bug 1819025 - Don't consider following join-controls when determining whether a space is collapsible. r=emilio
Differential Revision: https://phabricator.services.mozilla.com/D171061
This commit is contained in:
parent
86bab38343
commit
81d930a594
@ -167,6 +167,15 @@ bool IsClusterExtender(uint32_t aCh, uint8_t aCategory) {
|
||||
(aCh >= 0xe0020 && aCh <= 0xe007f)); // emoji (flag) tag characters
|
||||
}
|
||||
|
||||
bool IsClusterExtenderExcludingJoiners(uint32_t aCh, uint8_t aCategory) {
|
||||
return (
|
||||
(aCategory >= HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK &&
|
||||
aCategory <= HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK) ||
|
||||
(aCh >= 0xff9e && aCh <= 0xff9f) || // katakana sound marks
|
||||
(aCh >= 0x1F3FB && aCh <= 0x1F3FF) || // fitzpatrick skin tone modifiers
|
||||
(aCh >= 0xe0020 && aCh <= 0xe007f)); // emoji (flag) tag characters
|
||||
}
|
||||
|
||||
uint32_t CountGraphemeClusters(Span<const char16_t> aText) {
|
||||
intl::GraphemeClusterBreakIteratorUtf16 iter(aText);
|
||||
uint32_t result = 0;
|
||||
|
@ -159,6 +159,12 @@ inline bool IsClusterExtender(uint32_t aCh) {
|
||||
return IsClusterExtender(aCh, GetGeneralCategory(aCh));
|
||||
}
|
||||
|
||||
bool IsClusterExtenderExcludingJoiners(uint32_t aCh, uint8_t aCategory);
|
||||
|
||||
inline bool IsClusterExtenderExcludingJoiners(uint32_t aCh) {
|
||||
return IsClusterExtenderExcludingJoiners(aCh, GetGeneralCategory(aCh));
|
||||
}
|
||||
|
||||
// Count the number of grapheme clusters in the given string
|
||||
uint32_t CountGraphemeClusters(Span<const char16_t> aText);
|
||||
|
||||
|
@ -23,7 +23,7 @@ using namespace mozilla::dom;
|
||||
bool nsTextFrameUtils::IsSpaceCombiningSequenceTail(const char16_t* aChars,
|
||||
int32_t aLength) {
|
||||
return aLength > 0 &&
|
||||
(mozilla::unicode::IsClusterExtender(aChars[0]) ||
|
||||
(mozilla::unicode::IsClusterExtenderExcludingJoiners(aChars[0]) ||
|
||||
(IsBidiControl(aChars[0]) &&
|
||||
IsSpaceCombiningSequenceTail(aChars + 1, aLength - 1)));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user