diff options
author | Soeren Sandmann <sandmann@daimi.au.dk> | 2004-04-22 10:52:32 +0000 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@src.gnome.org> | 2004-04-22 10:52:32 +0000 |
commit | a92c54108ed0a3c21e44c855ad2d46f5a77a351d (patch) | |
tree | 6863126d6ba02c7ab89755a531f5609e8693ceeb /gtk/gtktoolbutton.c | |
parent | 215cabd938150ecfa32d50ac48ac43d00819e596 (diff) | |
download | gdk-pixbuf-a92c54108ed0a3c21e44c855ad2d46f5a77a351d.tar.gz |
Remove the old widget from the tool button before overwriting it with the
Wed Apr 21 21:38:03 2004 Soeren Sandmann <sandmann@daimi.au.dk>
* gtk/gtktoolbutton.c (gtk_tool_button_set_label_widget,
gtk_tool_button_set_icon_widget): Remove the old widget from the
tool button before overwriting it with the new widget.
(#140508, Todd Goyen)
Diffstat (limited to 'gtk/gtktoolbutton.c')
-rw-r--r-- | gtk/gtktoolbutton.c | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/gtk/gtktoolbutton.c b/gtk/gtktoolbutton.c index 24fd85f52..8723f893c 100644 --- a/gtk/gtktoolbutton.c +++ b/gtk/gtktoolbutton.c @@ -842,8 +842,16 @@ gtk_tool_button_set_icon_widget (GtkToolButton *button, if (icon_widget != button->priv->icon_widget) { if (button->priv->icon_widget) - g_object_unref (G_OBJECT (button->priv->icon_widget)); + { + if (button->priv->icon_widget->parent) + { + gtk_container_remove (GTK_CONTAINER (button->priv->icon_widget->parent), + button->priv->icon_widget); + } + g_object_unref (G_OBJECT (button->priv->icon_widget)); + } + if (icon_widget) { g_object_ref (icon_widget); @@ -881,8 +889,16 @@ gtk_tool_button_set_label_widget (GtkToolButton *button, if (label_widget != button->priv->label_widget) { if (button->priv->label_widget) - g_object_unref (button->priv->label_widget); - + { + if (button->priv->icon_widget->parent) + { + gtk_container_remove (GTK_CONTAINER (button->priv->icon_widget->parent), + button->priv->icon_widget); + } + + g_object_unref (button->priv->label_widget); + } + if (label_widget) { g_object_ref (label_widget); |