Added Input Methods menu

master
Yevgen Muntyan 2006-04-25 02:30:46 -05:00
parent 667d853637
commit 99052db422
3 changed files with 21 additions and 29 deletions

View File

@ -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 static void
moo_edit_add_action (MooEdit *edit, moo_edit_add_action (MooEdit *edit,
MooAction *action) MooAction *action)

View File

@ -29,8 +29,6 @@ extern GSList *_moo_edit_instances;
void _moo_edit_add_class_actions (MooEdit *edit); void _moo_edit_add_class_actions (MooEdit *edit);
void _moo_edit_check_actions (MooEdit *edit); void _moo_edit_check_actions (MooEdit *edit);
void _moo_edit_class_init_actions (MooEditClass *klass); 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, void _moo_edit_do_popup (MooEdit *edit,
GdkEventButton *event); GdkEventButton *event);

View File

@ -1711,12 +1711,33 @@ _moo_edit_do_popup (MooEdit *edit,
if (!edit->priv->menu) if (!edit->priv->menu)
{ {
gboolean show_im_menu = TRUE;
window = moo_edit_get_window (edit); window = moo_edit_get_window (edit);
edit->priv->menu = edit->priv->menu =
moo_ui_xml_create_widget (xml, MOO_UI_MENU, "Editor/Popup", moo_ui_xml_create_widget (xml, MOO_UI_MENU, "Editor/Popup",
moo_edit_get_actions (edit), moo_edit_get_actions (edit),
window ? MOO_WINDOW(window)->accel_group : NULL); window ? MOO_WINDOW(window)->accel_group : NULL);
gtk_object_sink (g_object_ref (edit->priv->menu)); 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); g_return_if_fail (edit->priv->menu != NULL);