static void main_window_edit_cb (GtkAction *action, EmpathyMainWindow *window) { GtkWidget *submenu; /* FIXME: It should use the UIManager to merge the contact/group submenu */ submenu = empathy_contact_list_view_get_contact_menu (window->list_view); if (submenu) { GtkMenuItem *item; GtkWidget *label; item = GTK_MENU_ITEM (window->edit_context); label = gtk_bin_get_child (GTK_BIN (item)); gtk_label_set_text (GTK_LABEL (label), _("Contact")); gtk_widget_show (window->edit_context); gtk_widget_show (window->edit_context_separator); gtk_menu_item_set_submenu (item, submenu); return; } submenu = empathy_contact_list_view_get_group_menu (window->list_view); if (submenu) { GtkMenuItem *item; GtkWidget *label; item = GTK_MENU_ITEM (window->edit_context); label = gtk_bin_get_child (GTK_BIN (item)); gtk_label_set_text (GTK_LABEL (label), _("Group")); gtk_widget_show (window->edit_context); gtk_widget_show (window->edit_context_separator); gtk_menu_item_set_submenu (item, submenu); return; } gtk_widget_hide (window->edit_context); gtk_widget_hide (window->edit_context_separator); return; }
static gboolean contact_list_view_popup_menu_idle_cb (gpointer user_data) { MenuPopupData *data = user_data; GtkWidget *menu; menu = empathy_contact_list_view_get_contact_menu (data->view); if (!menu) { menu = empathy_contact_list_view_get_group_menu (data->view); } if (menu) { gtk_widget_show (menu); gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, data->button, data->time); } g_slice_free (MenuPopupData, data); return FALSE; }