entry: Consider input hints for Emoji support
authorMatthias Clasen <mclasen@redhat.com>
Sat, 2 Sep 2017 12:42:52 +0000 (08:42 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 2 Sep 2017 12:48:07 +0000 (08:48 -0400)
Don't show "insert emoji" in the context menu if input
hints indicate that Emoji input is not useful.

gtk/gtkentry.c

index 6c5a6148196ed4371acb83b09cb684189e73c8fb..2ee69315bbef6f9c51aa3ced26e9138a97c214e1 100644 (file)
@@ -9576,14 +9576,18 @@ popup_targets_received (GtkClipboard     *clipboard,
       gtk_widget_show (menuitem);
       gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
 
-      menuitem = gtk_menu_item_new_with_mnemonic (_("Insert _Emoji"));
-      gtk_widget_set_sensitive (menuitem,
-                                mode == DISPLAY_NORMAL &&
-                                info_entry_priv->editable);
-      g_signal_connect_swapped (menuitem, "activate",
-                                G_CALLBACK (gtk_entry_choose_emoji), entry);
-      gtk_widget_show (menuitem);
-      gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
+      if (info_entry_priv->show_emoji_icon ||
+          (gtk_entry_get_input_hints (entry) & GTK_INPUT_HINT_NO_EMOJI) == 0)
+        {
+          menuitem = gtk_menu_item_new_with_mnemonic (_("Insert _Emoji"));
+          gtk_widget_set_sensitive (menuitem,
+                                    mode == DISPLAY_NORMAL &&
+                                    info_entry_priv->editable);
+          g_signal_connect_swapped (menuitem, "activate",
+                                    G_CALLBACK (gtk_entry_choose_emoji), entry);
+          gtk_widget_show (menuitem);
+          gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
+        }
 
       g_signal_emit (entry, signals[POPULATE_POPUP], 0, menu);