From: Bowon Ryu Date: Tue, 19 Jul 2022 01:47:15 +0000 (+0000) Subject: Merge "Fix: VS15 hides non-Emoji Negative Squared Latin Capital Letter" into devel... X-Git-Tag: dali_2.1.32~6 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=d2c068e0a80380a9d72d3296435c14791212c532;hp=ef75e3b7a26f7beafc6376c04a72119d27a57df9 Merge "Fix: VS15 hides non-Emoji Negative Squared Latin Capital Letter" into devel/master --- diff --git a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp index f7bf429..0ece717 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-TextLabel.cpp @@ -1146,22 +1146,27 @@ int UtcDaliToolkitTextLabelEmojisP(void) "Default ☪ \n" //default presentation "FamilyManWomanGirlBoy 👨‍👩‍👧‍👦\n" // emoji multi zwj sequence "WomanScientist 👩‍🔬\n" // emoji zwj sequence - "WomanScientistLightSkinTone👩🏻‍🔬 \n" //emoji modifier sequence: skin tone & JWZ - "LeftRightArrowText↔︎\n" //text presentation sequence and selector - "LeftRightArrowEmoji↔️\n" //emoji presentation sequence and selector - "SouthKoreaFlag🇰🇷\n" //emoji flag sequence + "WomanScientistLightSkinTone👩🏻‍🔬 \n" // emoji modifier sequence: skin tone & JWZ + "LeftRightArrowText↔︎\n" // text presentation sequence and selector + "LeftRightArrowEmoji↔️\n" // emoji presentation sequence and selector + "SouthKoreaFlag🇰🇷\n" // emoji flag sequence "JordanFlag🇯🇴\n" // emoji flag sequence - "EnglandFlag🏴󠁧󠁢󠁥󠁮󠁧󠁿\n" //emoji tag sequence like England flag + "EnglandFlag🏴󠁧󠁢󠁥󠁮󠁧󠁿\n" // emoji tag sequence like England flag "Runner 🏃‍➡️ \n" - "VictoryHandMediumLightSkinTone:✌️🏼\n" //emoji modifier sequence: skin tone - "RainbowFlag:🏳️‍🌈 \n" //emoji zwj sequence: Rainbow Flag - "keycap# #️⃣ \n" // fully-qualified emoji keycap sequence - "keycap#_text #⃣ \n" // unqualified emoji keycap sequence - "keycap3 3️⃣ \n" // fully-qualified emoji keycap sequence - "keycap3_text 3⃣ \n" // unqualified emoji keycap sequence - "two adjacent glyphs ☪️️️☪️\n" //This line should be rendered as two adjacent glyphs - "Digit 8️ 8︎ 8\n" // should be rendered according to selector - "Surfing Medium Skin Female: 🏄🏼‍♀️"; // Person Surfing + Medium Skin Tone +? Zero Width Joiner + Female Sign + "VictoryHandMediumLightSkinTone:✌️🏼\n" // emoji modifier sequence: skin tone + "RainbowFlag:🏳️‍🌈 \n" // emoji zwj sequence: Rainbow Flag + "keycap# #️⃣ \n" // fully-qualified emoji keycap sequence + "keycap#_text #⃣ \n" // unqualified emoji keycap sequence + "keycap3 3️⃣ \n" // fully-qualified emoji keycap sequence + "keycap3_text 3⃣ \n" // unqualified emoji keycap sequence + "two adjacent glyphs ☪️️️☪️\n" // This line should be rendered as two adjacent glyphs + "Digit 8️ 8︎ 8\n" // should be rendered according to selector + "Surfing Medium Skin Female: 🏄🏼‍♀️\n" // Person Surfing + Medium Skin Tone +? Zero Width Joiner + Female Sign + "SYMBOLS_NSLCL variation selector: 🅰️🅱️🅲︎🅳︎🅴︎\n" // 1F170 ~ 1F174 with variation selector, text vs emoji + "SYMBOLS_NSLCL with VS15: 🅰︎🅱︎🅲︎🅳︎🅴︎\n" // 1F170 ~ 1F174 with VS15 + "SYMBOLS_NSLCL with VS16: 🅰️🅱️🅲️🅳️🅴️\n" // 1F170 ~ 1F174 with VS16 + + ; label.SetProperty(TextLabel::Property::TEXT, emojiSequences); label.SetProperty(TextLabel::Property::ENABLE_MARKUP, true); diff --git a/dali-toolkit/internal/text/emoji-helper.cpp b/dali-toolkit/internal/text/emoji-helper.cpp index c458fd0..35a7760 100644 --- a/dali-toolkit/internal/text/emoji-helper.cpp +++ b/dali-toolkit/internal/text/emoji-helper.cpp @@ -42,13 +42,14 @@ bool IsEmojiSequence(const TextAbstraction::Script& currentRunScript, const TextAbstraction::Character& character, const TextAbstraction::Script& characterScript) { - return (IsOneOfEmojiScripts(currentRunScript) && - (IsOneOfEmojiScripts(characterScript) || - TextAbstraction::IsZeroWidthJoiner(character) || - TextAbstraction::IsZeroWidthNonJoiner(character) || - TextAbstraction::IsEmojiItem(character) || - TextAbstraction::IsMiscellaneousSymbolsAndArrowsEmoji(character) || - TextAbstraction::IsDingbatsEmoji(character))); + return (!(TextAbstraction::IsNegativeSquaredLatinCapitalLetter(character)) && + (IsOneOfEmojiScripts(currentRunScript) && + (IsOneOfEmojiScripts(characterScript) || + TextAbstraction::IsZeroWidthJoiner(character) || + TextAbstraction::IsZeroWidthNonJoiner(character) || + TextAbstraction::IsEmojiItem(character) || + TextAbstraction::IsMiscellaneousSymbolsAndArrowsEmoji(character) || + TextAbstraction::IsDingbatsEmoji(character)))); } bool IsNewSequence(const Character* const textBuffer,