[geany/geany] b0cb84: VTE: Respect GTK setting for whether to show the IM method menu

Colomban Wendling git-noreply at geany.org
Sat Oct 29 14:28:21 UTC 2016


Branch:      refs/heads/master
Author:      Colomban Wendling <ban at herbesfolles.org>
Committer:   Colomban Wendling <ban at herbesfolles.org>
Date:        Sat, 29 Oct 2016 14:28:21 UTC
Commit:      b0cb8440b15b08368d28ae643ad9ed051969969e
             https://github.com/geany/geany/commit/b0cb8440b15b08368d28ae643ad9ed051969969e

Log Message:
-----------
VTE: Respect GTK setting for whether to show the IM method menu


Modified Paths:
--------------
    src/vte.c

Modified: src/vte.c
16 lines changed, 12 insertions(+), 4 deletions(-)
===================================================================
@@ -327,7 +327,7 @@ static void on_vte_realize(void)
 	/* the vte widget has to be realised before color changes take effect */
 	vte_apply_user_settings();
 
-	if (vf->vte_terminal_im_append_menuitems)
+	if (vf->vte_terminal_im_append_menuitems && vc->im_submenu)
 		vf->vte_terminal_im_append_menuitems(VTE_TERMINAL(vc->vte), GTK_MENU_SHELL(vc->im_submenu));
 }
 
@@ -721,6 +721,7 @@ static GtkWidget *vte_create_popup_menu(void)
 {
 	GtkWidget *menu, *item;
 	GtkAccelGroup *accel_group;
+	gboolean show_im_menu = TRUE;
 
 	menu = gtk_menu_new();
 
@@ -775,8 +776,15 @@ static GtkWidget *vte_create_popup_menu(void)
 
 	msgwin_menu_add_common_items(GTK_MENU(menu));
 
-	/* VTE 2.91 doesn't have IM context items -- but neither does newer GTK3 apparently */
-	if (vf->vte_terminal_im_append_menuitems)
+	/* VTE 2.91 doesn't have IM context items, and GTK >= 3.10 doesn't show them anyway */
+	if (! vf->vte_terminal_im_append_menuitems || gtk_check_version(3, 10, 0) == NULL)
+		show_im_menu = FALSE;
+	else /* otherwise, query the setting */
+		g_object_get(gtk_settings_get_default(), "gtk-show-input-method-menu", &show_im_menu, NULL);
+
+	if (! show_im_menu)
+		vc->im_submenu = NULL;
+	else
 	{
 		item = gtk_separator_menu_item_new();
 		gtk_widget_show(item);
@@ -790,9 +798,9 @@ static GtkWidget *vte_create_popup_menu(void)
 		gtk_container_add(GTK_CONTAINER(menu), item);
 
 		gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), vc->im_submenu);
+		/* submenu populated after vte realized */
 	}
 
-	/* submenu populated after vte realized */
 	return menu;
 }
 



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list