entry: Drop our own Emoji chooser
authorMatthias Clasen <mclasen@redhat.com>
Sat, 4 May 2019 18:51:27 +0000 (18:51 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 4 May 2019 18:54:37 +0000 (18:54 +0000)
We were using one Emoji chooser when triggered
via the context menu, and another one when
triggered via the icon.

Change things to always use the same Emoji
chooser instance.

gtk/gtkentry.c

index 9015c1fb661edfd3b6118eb07d7a04740cf361a5..1193d3e8df2f1800da14ea0a271cb240632c73b4 100644 (file)
@@ -3448,41 +3448,18 @@ gtk_entry_enter_text (GtkEntry *entry,
 }
 
 static void
-gtk_entry_insert_emoji (GtkEntry *entry)
+pick_emoji (GtkEntry *entry,
+            int       icon,
+            GdkEvent *event,
+            gpointer  data)
 {
   GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry);
-  GtkWidget *chooser;
-  GdkRectangle rect;
 
   if (gtk_widget_get_ancestor (GTK_WIDGET (entry), GTK_TYPE_EMOJI_CHOOSER) != NULL)
     return;
 
-  chooser = GTK_WIDGET (g_object_get_data (G_OBJECT (entry), "gtk-emoji-chooser"));
-  if (!chooser)
-    {
-      chooser = gtk_emoji_chooser_new ();
-      g_object_set_data (G_OBJECT (entry), "gtk-emoji-chooser", chooser);
-
-      gtk_popover_set_relative_to (GTK_POPOVER (chooser), GTK_WIDGET (entry));
-      if (priv->show_emoji_icon)
-        {
-          gtk_entry_get_icon_area (entry, GTK_ENTRY_ICON_SECONDARY, &rect);
-          gtk_popover_set_pointing_to (GTK_POPOVER (chooser), &rect);
-        }
-      g_signal_connect_swapped (chooser, "emoji-picked", G_CALLBACK (gtk_entry_enter_text), entry);
-    }
-
-  gtk_popover_popup (GTK_POPOVER (chooser));
-}
-
-static void
-pick_emoji (GtkEntry *entry,
-            int       icon,
-            GdkEvent *event,
-            gpointer  data)
-{
   if (icon == GTK_ENTRY_ICON_SECONDARY)
-    gtk_entry_insert_emoji (entry);
+    g_signal_emit_by_name (priv->text, "insert-emoji");
 }
 
 static void