rendered paste bodyelse if (GTK_IS_MENU_ITEM (widget)) { GtkWidget *parent; GtkWidget *attach; GList *list; AtkObject *parent_obj; gint index; parent = gtk_widget_get_parent (widget); if (GTK_IS_MENU (parent)) { attach = gtk_menu_get_attach_widget (GTK_MENU (parent)); if (GTK_IS_OPTION_MENU (attach)) { label = get_label_from_container (attach); if (GTK_IS_LABEL (label)) return gtk_label_get_text (GTK_LABEL(label)); } list = gtk_container_get_children (GTK_CONTAINER (parent)); index = g_list_index (list, widget); g_list_free (list); parent_obj = atk_object_get_parent (gtk_widget_get_accessible (parent)); if (GTK_IS_ACCESSIBLE (parent_obj)) { parent = GTK_ACCESSIBLE (parent_obj)->widget; if (GTK_IS_COMBO_BOX (parent)) { GtkTreeModel *model; GtkTreeIter iter; GailItem *item; gint n_columns, i; model = gtk_combo_box_get_model (GTK_COMBO_BOX (parent)); item = GAIL_ITEM (obj); g_free (item->text); if (gtk_tree_model_iter_nth_child (model, &iter, NULL, index)) { n_columns = gtk_tree_model_get_n_columns (model); for (i = 0; i < n_columns; i++) { GValue value = { 0, }; gtk_tree_model_get_value (model, &iter, i, &value); if (G_VALUE_HOLDS_STRING (&value)) { item->text = (gchar *) g_value_get_string (&value); break; } } } name = item->text; } } } }