SF.net SVN: geany: [710] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun Aug 13 08:46:08 UTC 2006
Revision: 710
Author: eht16
Date: 2006-08-13 01:45:59 -0700 (Sun, 13 Aug 2006)
ViewCVS: http://svn.sourceforge.net/geany/?rev=710&view=rev
Log Message:
-----------
Added the GTK IM menu items to the VTE popup menu.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/vte.c
trunk/src/vte.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2006-08-13 08:36:52 UTC (rev 709)
+++ trunk/ChangeLog 2006-08-13 08:45:59 UTC (rev 710)
@@ -3,6 +3,7 @@
* src/document.c:
Use wrappers for converting between utf8 and locale encoding.
Fixed small memory leak.
+ * src/vte.c: Added the GTK IM menu items to the VTE popup menu.
2006-08-12 Enrico Tröger <enrico.troeger at uvena.de>
Modified: trunk/src/vte.c
===================================================================
--- trunk/src/vte.c 2006-08-13 08:36:52 UTC (rev 709)
+++ trunk/src/vte.c 2006-08-13 08:45:59 UTC (rev 710)
@@ -41,6 +41,7 @@
static pid_t pid;
static GModule *module = NULL;
static struct vte_funcs *vf;
+static gboolean popup_menu_created = FALSE;
#define VTE_TERMINAL(obj) (GTK_CHECK_CAST((obj), VTE_TYPE_TERMINAL, VteTerminal))
@@ -135,7 +136,6 @@
vte = vf->vte_terminal_new();
vc->vte = vte;
- vc->menu = vte_create_popup_menu();
scrollbar = gtk_vscrollbar_new(GTK_ADJUSTMENT(VTE_TERMINAL(vte)->adjustment));
GTK_WIDGET_UNSET_FLAGS(scrollbar, GTK_CAN_FOCUS);
@@ -181,7 +181,7 @@
* this prevents a segfault on X close window if the message window is hidden
* (patch from Nick Treleaven, thanks) */
gtk_widget_destroy(vc->vte);
- gtk_widget_destroy(vc->menu);
+ if (popup_menu_created) gtk_widget_destroy(vc->menu);
g_free(vc->font);
g_free(vc->emulation);
g_free(vc->color_back);
@@ -243,6 +243,13 @@
{
if (event->button == 3)
{
+ if (! popup_menu_created)
+ {
+ vc->menu = vte_create_popup_menu();
+ vf->vte_terminal_im_append_menuitems(VTE_TERMINAL(vc->vte), GTK_MENU_SHELL(vc->im_submenu));
+ popup_menu_created = TRUE;
+ }
+
gtk_menu_popup(GTK_MENU(vc->menu), NULL, NULL, NULL, NULL, event->button, event->time);
}
@@ -283,6 +290,7 @@
g_module_symbol(mod, "vte_terminal_set_color_foreground", (void*)&vf->vte_terminal_set_color_foreground);
g_module_symbol(mod, "vte_terminal_set_color_background", (void*)&vf->vte_terminal_set_color_background);
g_module_symbol(mod, "vte_terminal_feed_child", (void*)&vf->vte_terminal_feed_child);
+ g_module_symbol(mod, "vte_terminal_im_append_menuitems", (void*)&vf->vte_terminal_im_append_menuitems);
}
@@ -378,6 +386,18 @@
gtk_container_add(GTK_CONTAINER(menu), item);
g_signal_connect((gpointer)item, "activate", G_CALLBACK(vte_popup_menu_clicked), GINT_TO_POINTER(2));
+ item = gtk_separator_menu_item_new();
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
+ vc->im_submenu = gtk_menu_new();
+
+ item = gtk_image_menu_item_new_with_mnemonic(_("_Input Methods"));
+ gtk_widget_show(item);
+ gtk_container_add(GTK_CONTAINER(menu), item);
+
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), vc->im_submenu);
+
return menu;
}
Modified: trunk/src/vte.h
===================================================================
--- trunk/src/vte.h 2006-08-13 08:36:52 UTC (rev 709)
+++ trunk/src/vte.h 2006-08-13 08:45:59 UTC (rev 710)
@@ -66,8 +66,9 @@
struct vte_conf
{
- GtkWidget *vte; // small hack, to have always a reference to the widget
+ GtkWidget *vte;
GtkWidget *menu;
+ GtkWidget *im_submenu;
gboolean scroll_on_key;
gboolean scroll_on_out;
gboolean follow_path;
@@ -106,6 +107,7 @@
void (*vte_terminal_set_color_foreground) (VteTerminal *terminal, const GdkColor *foreground);
void (*vte_terminal_set_color_background) (VteTerminal *terminal, const GdkColor *background);
void (*vte_terminal_feed_child) (VteTerminal *terminal, const char *data, glong length);
+ void (*vte_terminal_im_append_menuitems) (VteTerminal *terminal, GtkMenuShell *menushell);
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Commits
mailing list