summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2019-04-02 14:15:59 +0800
committerPeng Wu <alexepico@gmail.com>2019-04-02 17:57:21 +0800
commitac67bc285e9335797450e7172ce218fbcce32fb6 (patch)
tree62b6f76c6361149c35392d87792419e68ef10960
parent982445fe1c234b1ef5173556a73f659946c1a288 (diff)
downloadpango-ac67bc285e9335797450e7172ce218fbcce32fb6.tar.gz
Fixes emoji backspace deletion behavior
-rw-r--r--pango/break.c3
-rw-r--r--pango/pango-emoji-private.h3
-rw-r--r--pango/pango-emoji.c6
3 files changed, 11 insertions, 1 deletions
diff --git a/pango/break.c b/pango/break.c
index 355518eb..37be1c65 100644
--- a/pango/break.c
+++ b/pango/break.c
@@ -124,7 +124,8 @@ static const CharJamoProps HangulJamoProps[] = {
#define GREEK(wc) (((wc) >= 0x0370 && (wc) <= 0x3FF) || ((wc) >= 0x1F00 && (wc) <= 0x1FFF))
#define KANA(wc) ((wc) >= 0x3040 && (wc) <= 0x30FF)
#define HANGUL(wc) ((wc) >= 0xAC00 && (wc) <= 0xD7A3)
-#define BACKSPACE_DELETES_CHARACTER(wc) (!LATIN (wc) && !CYRILLIC (wc) && !GREEK (wc) && !KANA(wc) && !HANGUL(wc))
+#define EMOJI(wc) (_pango_Is_Emoji_Base_Character (wc))
+#define BACKSPACE_DELETES_CHARACTER(wc) (!LATIN (wc) && !CYRILLIC (wc) && !GREEK (wc) && !KANA (wc) && !HANGUL (wc) && !EMOJI (wc))
/* Previously "123foo" was two words. But in UAX 29 of Unicode,
* we know don't break words between consecutive letters and numbers
diff --git a/pango/pango-emoji-private.h b/pango/pango-emoji-private.h
index f0d3b7f9..928ad885 100644
--- a/pango/pango-emoji-private.h
+++ b/pango/pango-emoji-private.h
@@ -25,6 +25,9 @@
#include <glib.h>
gboolean
+_pango_Is_Emoji_Base_Character (gunichar ch);
+
+gboolean
_pango_Is_Emoji_Extended_Pictographic (gunichar ch);
typedef struct _PangoEmojiIter PangoEmojiIter;
diff --git a/pango/pango-emoji.c b/pango/pango-emoji.c
index c0e0de60..e316b370 100644
--- a/pango/pango-emoji.c
+++ b/pango/pango-emoji.c
@@ -95,6 +95,12 @@ DEFINE_pango_Is_(Emoji_Modifier_Base)
DEFINE_pango_Is_(Extended_Pictographic)
gboolean
+_pango_Is_Emoji_Base_Character (gunichar ch)
+{
+ return _pango_Is_Emoji (ch);
+}
+
+gboolean
_pango_Is_Emoji_Extended_Pictographic (gunichar ch)
{
return _pango_Is_Extended_Pictographic (ch);