+static void
+gtk_combo_box_remove (GtkContainer *container,
+ GtkWidget *widget)
+{
+ GtkComboBox *combo_box = GTK_COMBO_BOX (container);
+ gboolean appears_as_list;
+
+ gtk_widget_unparent (widget);
+ GTK_BIN (container)->child = NULL;
+
+ if (combo_box->priv->destroying)
+ return;
+
+ gtk_widget_queue_resize (GTK_WIDGET (container));
+
+ if (!combo_box->priv->tree_view)
+ appears_as_list = FALSE;
+ else
+ appears_as_list = TRUE;
+
+ if (appears_as_list)
+ gtk_combo_box_list_destroy (combo_box);
+ else if (GTK_IS_MENU (combo_box->priv->popup_widget))
+ {
+ gtk_combo_box_menu_destroy (combo_box);
+ gtk_menu_detach (GTK_MENU (combo_box->priv->popup_widget));
+ combo_box->priv->popup_widget = NULL;
+ }
+
+ if (!combo_box->priv->cell_view)
+ {
+ combo_box->priv->cell_view = gtk_cell_view_new ();
+ gtk_widget_set_parent (combo_box->priv->cell_view, GTK_WIDGET (container));
+ GTK_BIN (container)->child = combo_box->priv->cell_view;
+
+ gtk_widget_show (combo_box->priv->cell_view);
+ gtk_cell_view_set_model (GTK_CELL_VIEW (combo_box->priv->cell_view),
+ combo_box->priv->model);
+ cell_view_sync_cells (combo_box, GTK_CELL_VIEW (combo_box->priv->cell_view));
+ }
+
+
+ if (appears_as_list)
+ gtk_combo_box_list_setup (combo_box);
+ else
+ gtk_combo_box_menu_setup (combo_box, TRUE);
+
+ gtk_combo_box_set_active_internal (combo_box, combo_box->priv->active_item);
+}
+