diff --git a/gtk/gtkbin.c b/gtk/gtkbin.c index bef71f5228..95d814e6e5 100644 --- a/gtk/gtkbin.c +++ b/gtk/gtkbin.c @@ -277,3 +277,10 @@ gtk_bin_get_child (GtkBin *bin) return bin->child; } + +void +_gtk_bin_set_child (GtkBin *bin, + GtkWidget *widget) +{ + bin->priv->child = widget; +} diff --git a/gtk/gtkbin.h b/gtk/gtkbin.h index 7db2a5ae4a..9a3a460d5e 100644 --- a/gtk/gtkbin.h +++ b/gtk/gtkbin.h @@ -65,6 +65,9 @@ GType gtk_bin_get_type (void) G_GNUC_CONST; GtkWidget *gtk_bin_get_child (GtkBin *bin); +void _gtk_bin_set_child (GtkBin *bin, + GtkWidget *widget); + G_END_DECLS #endif /* __GTK_BIN_H__ */ diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c index 500662dd70..d91561aad4 100644 --- a/gtk/gtkcombobox.c +++ b/gtk/gtkcombobox.c @@ -935,7 +935,7 @@ gtk_combo_box_init (GtkComboBox *combo_box) priv->cell_view = gtk_cell_view_new (); gtk_widget_set_parent (priv->cell_view, GTK_WIDGET (combo_box)); - GTK_BIN (combo_box)->child = priv->cell_view; + _gtk_bin_set_child (GTK_BIN (combo_box), priv->cell_view); gtk_widget_show (priv->cell_view); priv->width = 0; @@ -1222,12 +1222,12 @@ gtk_combo_box_add (GtkContainer *container, if (priv->cell_view && priv->cell_view->parent) { gtk_widget_unparent (priv->cell_view); - GTK_BIN (container)->child = NULL; + _gtk_bin_set_child (GTK_BIN (container), NULL); gtk_widget_queue_resize (GTK_WIDGET (container)); } gtk_widget_set_parent (widget, GTK_WIDGET (container)); - GTK_BIN (container)->child = widget; + _gtk_bin_set_child (GTK_BIN (container), widget); if (priv->cell_view && widget != priv->cell_view) @@ -1265,7 +1265,7 @@ gtk_combo_box_remove (GtkContainer *container, priv->cell_view = NULL; gtk_widget_unparent (widget); - GTK_BIN (container)->child = NULL; + _gtk_bin_set_child (GTK_BIN (container), NULL); if (GTK_OBJECT_FLAGS (combo_box) & GTK_IN_DESTRUCTION) return; @@ -1290,7 +1290,7 @@ gtk_combo_box_remove (GtkContainer *container, { priv->cell_view = gtk_cell_view_new (); gtk_widget_set_parent (priv->cell_view, GTK_WIDGET (container)); - GTK_BIN (container)->child = priv->cell_view; + _gtk_bin_set_child (GTK_BIN (container), priv->cell_view); gtk_widget_show (priv->cell_view); gtk_cell_view_set_model (GTK_CELL_VIEW (priv->cell_view), diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index 3e3c81c2b5..d2a987623e 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -3372,7 +3372,7 @@ gtk_notebook_drag_end (GtkWidget *widget, if (priv->detached_tab) gtk_notebook_switch_page (notebook, priv->detached_tab); - GTK_BIN (priv->dnd_window)->child = NULL; + _gtk_bin_set_child (GTK_BIN (priv->dnd_window), NULL); gtk_widget_destroy (priv->dnd_window); priv->dnd_window = NULL; @@ -6278,7 +6278,7 @@ gtk_notebook_menu_label_unparent (GtkWidget *widget, gpointer data) { gtk_widget_unparent (gtk_bin_get_child (GTK_BIN (widget))); - GTK_BIN (widget)->child = NULL; + _gtk_bin_set_child (GTK_BIN (widget), NULL); } static void diff --git a/gtk/gtkscrolledwindow.c b/gtk/gtkscrolledwindow.c index b22f005b64..6bbe37b918 100644 --- a/gtk/gtkscrolledwindow.c +++ b/gtk/gtkscrolledwindow.c @@ -1621,7 +1621,7 @@ gtk_scrolled_window_add (GtkContainer *container, scrolled_window = GTK_SCROLLED_WINDOW (container); - bin->child = child; + _gtk_bin_set_child (bin, child); gtk_widget_set_parent (child, GTK_WIDGET (bin)); /* this is a temporary message */