summaryrefslogtreecommitdiff
path: root/gtk/gtktoolbutton.c
diff options
context:
space:
mode:
authorSoeren Sandmann <sandmann@daimi.au.dk>2004-04-22 10:52:32 +0000
committerSøren Sandmann Pedersen <ssp@src.gnome.org>2004-04-22 10:52:32 +0000
commita92c54108ed0a3c21e44c855ad2d46f5a77a351d (patch)
tree6863126d6ba02c7ab89755a531f5609e8693ceeb /gtk/gtktoolbutton.c
parent215cabd938150ecfa32d50ac48ac43d00819e596 (diff)
downloadgdk-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.c22
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);