diff --git a/moo/mooedit/mooedit-actions.c b/moo/mooedit/mooedit-actions.c index 070e794e..bd3087d4 100644 --- a/moo/mooedit/mooedit-actions.c +++ b/moo/mooedit/mooedit-actions.c @@ -76,33 +76,6 @@ action_info_free (ActionInfo *info) } -static gboolean -set_action_accel (G_GNUC_UNUSED MooActionGroup *group, - MooAction *action, - gpointer data) -{ - if (!action->dead && data) - { - const char *accel_path; - accel_path = moo_action_make_accel_path (data, action->id); - _moo_action_set_accel_path (action, accel_path); - } - - return FALSE; -} - -void -_moo_edit_set_action_accels (MooEdit *edit, - MooEditWindow *window) -{ - char *window_id; - window_id = moo_window_get_id (MOO_WINDOW (window)); - moo_action_group_foreach (edit->priv->actions, - set_action_accel, window_id); - g_free (window_id); -} - - static void moo_edit_add_action (MooEdit *edit, MooAction *action) diff --git a/moo/mooedit/mooedit-private.h b/moo/mooedit/mooedit-private.h index 7efad860..2cab0248 100644 --- a/moo/mooedit/mooedit-private.h +++ b/moo/mooedit/mooedit-private.h @@ -29,8 +29,6 @@ extern GSList *_moo_edit_instances; void _moo_edit_add_class_actions (MooEdit *edit); void _moo_edit_check_actions (MooEdit *edit); void _moo_edit_class_init_actions (MooEditClass *klass); -void _moo_edit_set_action_accels (MooEdit *edit, - MooEditWindow *window); void _moo_edit_do_popup (MooEdit *edit, GdkEventButton *event); diff --git a/moo/mooedit/mooedit.c b/moo/mooedit/mooedit.c index a410c96d..f1c127c9 100644 --- a/moo/mooedit/mooedit.c +++ b/moo/mooedit/mooedit.c @@ -1711,12 +1711,33 @@ _moo_edit_do_popup (MooEdit *edit, if (!edit->priv->menu) { + gboolean show_im_menu = TRUE; + window = moo_edit_get_window (edit); edit->priv->menu = moo_ui_xml_create_widget (xml, MOO_UI_MENU, "Editor/Popup", moo_edit_get_actions (edit), window ? MOO_WINDOW(window)->accel_group : NULL); gtk_object_sink (g_object_ref (edit->priv->menu)); + + if (show_im_menu) + { + GtkWidget *item, *submenu; + + item = gtk_separator_menu_item_new (); + gtk_widget_show (item); + gtk_menu_shell_append (GTK_MENU_SHELL (edit->priv->menu), item); + + item = gtk_menu_item_new_with_label ("Input Methods"); + gtk_widget_show (item); + + submenu = gtk_menu_new (); + gtk_menu_item_set_submenu (GTK_MENU_ITEM (item), submenu); + gtk_menu_shell_append (GTK_MENU_SHELL (edit->priv->menu), item); + + gtk_im_multicontext_append_menuitems (GTK_IM_MULTICONTEXT (GTK_TEXT_VIEW (edit)->im_context), + GTK_MENU_SHELL (submenu)); + } } g_return_if_fail (edit->priv->menu != NULL);