diff --git a/gtk/emoji/convert-emoji.c b/gtk/emoji/convert-emoji.c index 2e89f5a3d6..5226fcdd35 100644 --- a/gtk/emoji/convert-emoji.c +++ b/gtk/emoji/convert-emoji.c @@ -24,8 +24,6 @@ * sequence contains a 0, it marks the point * where skin tone modifiers should be inserted * s - name, e.g. "man worker" - * s - shortname, for completion. This includes - * colons to mark the ends, e.g. ":guardsman:" * as - keywords, e.g. "man", "worker" */ #include @@ -127,7 +125,7 @@ main (int argc, char *argv[]) array = json_node_get_array (root); length = json_array_get_length (array); - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(aussas)")); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a(ausas)")); i = 0; while (i < length) { @@ -136,7 +134,6 @@ main (int argc, char *argv[]) GVariantBuilder b1; GVariantBuilder b2; const char *name; - const char *shortname; char *code; int j, k; gboolean skip; @@ -187,7 +184,6 @@ main (int argc, char *argv[]) obj2 = g_hash_table_lookup (names, name_key->str); if (obj2) { - shortname = json_object_get_string_member (obj2, "shortname"); kw = json_object_get_array_member (obj2, "keywords"); for (k = 0; k < json_array_get_length (kw); k++) { @@ -209,12 +205,10 @@ main (int argc, char *argv[]) g_strfreev (ascii); } } - else - shortname = ""; g_strfreev (name_tokens); - g_variant_builder_add (&builder, "(aussas)", &b1, name, shortname, &b2); + g_variant_builder_add (&builder, "(ausas)", &b1, name, &b2); } v = g_variant_builder_end (&builder); diff --git a/gtk/emoji/emoji.data b/gtk/emoji/emoji.data index 5b9298db16..944fe0f7da 100644 Binary files a/gtk/emoji/emoji.data and b/gtk/emoji/emoji.data differ diff --git a/gtk/gtkemojichooser.c b/gtk/gtkemojichooser.c index 23edf88445..7abaf744ee 100644 --- a/gtk/gtkemojichooser.c +++ b/gtk/gtkemojichooser.c @@ -184,8 +184,8 @@ add_recent_item (GtkEmojiChooser *chooser, g_variant_ref (item); - g_variant_builder_init (&builder, G_VARIANT_TYPE ("a((aussas)u)")); - g_variant_builder_add (&builder, "(@(aussas)u)", item, modifier); + g_variant_builder_init (&builder, G_VARIANT_TYPE ("a((ausas)u)")); + g_variant_builder_add (&builder, "(@(ausas)u)", item, modifier); children = gtk_container_get_children (GTK_CONTAINER (chooser->recent.box)); for (l = children, i = 1; l; l = l->next, i++) @@ -205,7 +205,7 @@ add_recent_item (GtkEmojiChooser *chooser, continue; } - g_variant_builder_add (&builder, "(@(aussas)u)", item2, modifier2); + g_variant_builder_add (&builder, "(@(ausas)u)", item2, modifier2); } g_list_free (children); @@ -476,7 +476,7 @@ populate_emoji_chooser (gpointer data) if (!chooser->data) { GBytes *bytes = g_resources_lookup_data ("/org/gtk/libgtk/emoji/emoji.data", 0, NULL); - chooser->data = g_variant_ref_sink (g_variant_new_from_bytes (G_VARIANT_TYPE ("a(aussas)"), bytes, TRUE)); + chooser->data = g_variant_ref_sink (g_variant_new_from_bytes (G_VARIANT_TYPE ("a(ausas)"), bytes, TRUE)); g_bytes_unref (bytes); } @@ -632,7 +632,7 @@ filter_func (GtkFlowBoxChild *child, g_variant_get_child (emoji_data, 1, "&s", &name); name_tokens = g_str_tokenize_and_fold (name, "en", NULL); - g_variant_get_child (emoji_data, 3, "^a&s", &keywords); + g_variant_get_child (emoji_data, 2, "^a&s", &keywords); res = match_tokens ((const char **)term_tokens, (const char **)name_tokens) || match_tokens ((const char **)term_tokens, keywords); diff --git a/gtk/gtkemojicompletion.c b/gtk/gtkemojicompletion.c index 41c0a87a67..2cb150c031 100644 --- a/gtk/gtkemojicompletion.c +++ b/gtk/gtkemojicompletion.c @@ -116,7 +116,7 @@ next: break; } } - while (g_unichar_isalnum (g_utf8_get_char (p)) || *p == '_'); + while (g_unichar_isalnum (g_utf8_get_char (p)) || *p == '_' || *p == ' '); if (found_candidate) n_matches = populate_completion (completion, p, 0); @@ -521,7 +521,7 @@ add_emoji (GtkWidget *list, GtkWidget *box; PangoAttrList *attrs; char text[64]; - const char *shortname; + const char *name; GtkWidget *stack; gunichar modifier; @@ -551,8 +551,8 @@ add_emoji (GtkWidget *list, gtk_box_pack_start (GTK_BOX (box), stack, FALSE, FALSE, 0); g_object_set_data (G_OBJECT (child), "stack", stack); - g_variant_get_child (emoji_data, 2, "&s", &shortname); - label = gtk_label_new (shortname); + g_variant_get_child (emoji_data, 1, "&s", &name); + label = gtk_label_new (name); gtk_widget_show (label); gtk_label_set_xalign (GTK_LABEL (label), 0); @@ -610,10 +610,11 @@ populate_completion (GtkEmojiCompletion *completion, g_variant_iter_init (&iter, completion->data); while ((item = g_variant_iter_next_value (&iter))) { - const char *shortname; + const char *name; - g_variant_get_child (item, 2, "&s", &shortname); - if (g_str_has_prefix (shortname, text)) + g_variant_get_child (item, 1, "&s", &name); + + if (g_str_has_prefix (name, text + 1)) { n_matches++; @@ -664,7 +665,8 @@ gtk_emoji_completion_init (GtkEmojiCompletion *completion) gtk_widget_init_template (GTK_WIDGET (completion)); bytes = g_resources_lookup_data ("/org/gtk/libgtk/emoji/emoji.data", 0, NULL); - completion->data = g_variant_ref_sink (g_variant_new_from_bytes (G_VARIANT_TYPE ("a(auss)"), bytes, TRUE)); + completion->data = g_variant_ref_sink (g_variant_new_from_bytes (G_VARIANT_TYPE ("a(ausas)"), bytes, TRUE)); + g_bytes_unref (bytes); completion->long_press = gtk_gesture_long_press_new (completion->list);