The non-emoji letters form Negative-Squared-Latin-Capital-Letter become invisible
when use VS16 or Emoji Color Font.
Examples:
"1F170 ~ 1F174 with variation selector, text vs emoji: 🅰️🅱️🅲︎🅳︎🅴︎\n"
"1F170 ~ 1F174 with VS15: 🅰︎🅱︎🅲︎🅳︎🅴︎\n"
"1F170 ~ 1F174 with VS16: 🅰️🅱️🅲️🅳️🅴️\n";
In Negative-Squared-Latin-Capital-Letter from enclosed-alphanumeric-supplement,
The Letters A,B,O,P are Emoji Variation Sequences.
https://unicode-table.com/en/blocks/enclosed-alphanumeric-supplement/
This patch should be preceded by the patch below:
https://review.tizen.org/gerrit/c/platform/core/uifw/dali-adaptor/+/277666
Change-Id: Ie61ef6744ebfee1b58a07ab302d9151ce765677d
GetCharacterScriptCheckRange(0xFF5B, 0xFFEF, HWFW_S, TEST_LOCATION);
GetCharacterScriptCheckRange(0x1ee00, 0x1eeff, ARABIC, TEST_LOCATION);
- GetCharacterScriptCheckRange(0x1f170, 0x1f6ff, EMOJI, TEST_LOCATION);
+ GetCharacterScriptCheckRange(0x1f170, 0x1f189, SYMBOLS_NSLCL, TEST_LOCATION);
+ GetCharacterScriptCheckRange(0x1f18a, 0x1f6ff, EMOJI, TEST_LOCATION);
GetCharacterScriptCheckRange(0x1f900, 0x1f9ff, EMOJI, TEST_LOCATION);
GetCharacterScriptCheckRange(0x20000, 0x215ff, CJK, TEST_LOCATION);
GetCharacterScriptCheckRange(0x21600, 0x230ff, CJK, TEST_LOCATION);
{
return (IsEmojiComponent(character) ||
IsEmojiModifier(character) ||
- IsTextPresentationSelector(character) ||
- IsEmojiPresentationSelector(character) ||
+ // IsTextPresentationSelector(character) ||
+ // IsEmojiPresentationSelector(character) ||
IsTagSpec(character) ||
IsTagEnd(character));
}
return SET_CHAR_EMOJI_VARIATION_SEQUENCES.find(character) != SET_CHAR_EMOJI_VARIATION_SEQUENCES.end();
}
+DALI_ADAPTOR_API bool IsNegativeSquaredLatinCapitalLetter(Character character)
+{
+ return (0x1F170 <= character &&
+ 0x1F189 >= character);
+}
+
} // namespace TextAbstraction
} // namespace Dali
*/
DALI_ADAPTOR_API bool IsEmojiVariationSequences(Character character);
+/**
+ * @brief Whether the character is Negative Squared Latin Capital Letter.
+ * Read more at White on black squared Latin letters: https://unicode-table.com/en/blocks/enclosed-alphanumeric-supplement/
+ *
+ *
+ * @param[in] character The character.
+ *
+ * @return @e true if the character is Negative Squared Latin Capital Letter.
+ */
+DALI_ADAPTOR_API bool IsNegativeSquaredLatinCapitalLetter(Character character);
+
} // namespace TextAbstraction
} // namespace Dali
TextAbstraction::SYMBOLS2 == script ||
TextAbstraction::SYMBOLS3 == script ||
TextAbstraction::SYMBOLS4 == script ||
- TextAbstraction::SYMBOLS5 == script);
+ TextAbstraction::SYMBOLS5 == script ||
+ TextAbstraction::SYMBOLS_NSLCL == script);
}
DALI_ADAPTOR_API bool IsEmojiScript(const TextAbstraction::Script& script)
}
// U+1f170 4. Enclosed characters: negative squared latin capital letter A
// U+1f6ff 6b. Additional transport and map symbols
+ // Exclude U+1f170 ~ U+1f189. They are SYMBOLS_NSLCL (negative squared latin capital letter)
else if((0x1f170 <= character) && (character <= 0x1f6ff))
{
script = EMOJI;
{
Script script = UNKNOWN;
- if(IsEmojiItem(character))
+ if(IsTextPresentationSelector(character))
+ {
+ script = EMOJI_TEXT;
+ }
+ else if(IsEmojiPresentationSelector(character))
+ {
+ script = EMOJI_COLOR;
+ }
+ else if(IsEmojiItem(character))
{
script = EMOJI;
}
+ else if(IsNegativeSquaredLatinCapitalLetter(character))
+ {
+ script = SYMBOLS_NSLCL;
+ }
else if(IsCommonScript(character))
{
script = COMMON;
Length GetNumberOfScripts()
{
- return EMOJI_COLOR + 1;
+ return SYMBOLS_NSLCL + 1;
}
} // namespace TextAbstraction
SYMBOLS4, ///< Some symbols.
SYMBOLS5, ///< Some symbols.
- UNKNOWN, ///< The script is unknown.
- EMOJI_TEXT, ///< The Emoji request a text presentation for an emoji character.
- EMOJI_COLOR ///< The Emoji request a color-emoji presentation for an emoji character.
+ UNKNOWN, ///< The script is unknown.
+ EMOJI_TEXT, ///< The Emoji request a text presentation for an emoji character.
+ EMOJI_COLOR, ///< The Emoji request a color-emoji presentation for an emoji character.
+ SYMBOLS_NSLCL ///< THe Negative Squared Latin Capital Letter
//Note: update ScriptName and GetNumberOfScripts when adding new script
};
"SYMBOLS4", ///< Some symbols.
"SYMBOLS5", ///< Some symbols.
- "UNKNOWN", ///< The script is unknown.
- "EMOJI_TEXT", ///< The Emoji request a text presentation for an emoji character.
- "EMOJI_COLOR" ///< The Emoji request a color-emoji presentation for an emoji character.
+ "UNKNOWN", ///< The script is unknown.
+ "EMOJI_TEXT", ///< The Emoji request a text presentation for an emoji character.
+ "EMOJI_COLOR", ///< The Emoji request a color-emoji presentation for an emoji character.
+ "SYMBOLS_NSLCL" ///< THe Negative Squared Latin Capital Letter
};
/**
HB_SCRIPT_UNKNOWN, // SYMBOLS5
HB_SCRIPT_UNKNOWN, // UNKNOWN
HB_SCRIPT_UNKNOWN, // EMOJI_TEXT
- HB_SCRIPT_UNKNOWN}; // EMOJI_COLOR
+ HB_SCRIPT_UNKNOWN, // EMOJI_COLOR
+ HB_SCRIPT_UNKNOWN}; // SYMBOLS_NSLCL
struct Shaping::Plugin
{