From a92c54108ed0a3c21e44c855ad2d46f5a77a351d Mon Sep 17 00:00:00 2001 From: Soeren Sandmann Date: Thu, 22 Apr 2004 10:52:32 +0000 Subject: [PATCH] Remove the old widget from the tool button before overwriting it with the Wed Apr 21 21:38:03 2004 Soeren Sandmann * 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) --- ChangeLog | 8 ++++++++ ChangeLog.pre-2-10 | 8 ++++++++ ChangeLog.pre-2-4 | 8 ++++++++ ChangeLog.pre-2-6 | 8 ++++++++ ChangeLog.pre-2-8 | 8 ++++++++ gtk/gtktoolbutton.c | 22 +++++++++++++++++++--- 6 files changed, 59 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 65e1c69bd..846727b6b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +Wed Apr 21 21:38:03 2004 Soeren Sandmann + + * 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) + 2004-04-22 Tor Lillqvist Fix the file chooser on Windows. I can't make it misbehave or diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 65e1c69bd..846727b6b 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,11 @@ +Wed Apr 21 21:38:03 2004 Soeren Sandmann + + * 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) + 2004-04-22 Tor Lillqvist Fix the file chooser on Windows. I can't make it misbehave or diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 65e1c69bd..846727b6b 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,11 @@ +Wed Apr 21 21:38:03 2004 Soeren Sandmann + + * 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) + 2004-04-22 Tor Lillqvist Fix the file chooser on Windows. I can't make it misbehave or diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 65e1c69bd..846727b6b 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,11 @@ +Wed Apr 21 21:38:03 2004 Soeren Sandmann + + * 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) + 2004-04-22 Tor Lillqvist Fix the file chooser on Windows. I can't make it misbehave or diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 65e1c69bd..846727b6b 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,11 @@ +Wed Apr 21 21:38:03 2004 Soeren Sandmann + + * 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) + 2004-04-22 Tor Lillqvist Fix the file chooser on Windows. I can't make it misbehave or 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); -- 2.43.2