summaryrefslogtreecommitdiff
path: root/gtk/gtktoolbutton.c
diff options
context:
space:
mode:
authorTristan Van Berkom <tristan.van.berkom@gmail.com>2010-08-30 14:56:28 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2010-08-30 14:56:28 +0900
commit54d44a9bd04cfbed8426614fc69c027a46f41a14 (patch)
tree34bdf65a6e8d5d6d4016154345d1d803ba0da379 /gtk/gtktoolbutton.c
parentb3b22c31b997fb85b3319b392a1a69407703184c (diff)
parent67194ed77b153eb5a7eb6c596f3c20e274b7787a (diff)
downloadgtk+-native-layout.tar.gz
Merge branch 'master' into native-layoutnative-layout
Conflicts: gtk/gtkplug.c gtk/gtkscrolledwindow.c
Diffstat (limited to 'gtk/gtktoolbutton.c')
-rw-r--r--gtk/gtktoolbutton.c41
1 files changed, 28 insertions, 13 deletions
diff --git a/gtk/gtktoolbutton.c b/gtk/gtktoolbutton.c
index d0c850331d..bf61d25121 100644
--- a/gtk/gtktoolbutton.c
+++ b/gtk/gtktoolbutton.c
@@ -323,6 +323,7 @@ gtk_tool_button_construct_contents (GtkToolItem *tool_item)
guint icon_spacing;
GtkOrientation text_orientation = GTK_ORIENTATION_HORIZONTAL;
GtkSizeGroup *size_group = NULL;
+ GtkWidget *parent;
button->priv->contents_invalid = FALSE;
@@ -330,16 +331,24 @@ gtk_tool_button_construct_contents (GtkToolItem *tool_item)
"icon-spacing", &icon_spacing,
NULL);
- if (button->priv->icon_widget && button->priv->icon_widget->parent)
+ if (button->priv->icon_widget)
{
- gtk_container_remove (GTK_CONTAINER (button->priv->icon_widget->parent),
- button->priv->icon_widget);
+ parent = gtk_widget_get_parent (button->priv->icon_widget);
+ if (parent)
+ {
+ gtk_container_remove (GTK_CONTAINER (parent),
+ button->priv->icon_widget);
+ }
}
- if (button->priv->label_widget && button->priv->label_widget->parent)
+ if (button->priv->label_widget)
{
- gtk_container_remove (GTK_CONTAINER (button->priv->label_widget->parent),
- button->priv->label_widget);
+ parent = gtk_widget_get_parent (button->priv->label_widget);
+ if (parent)
+ {
+ gtk_container_remove (GTK_CONTAINER (parent),
+ button->priv->label_widget);
+ }
}
child = gtk_bin_get_child (GTK_BIN (button->priv->button));
@@ -1193,9 +1202,12 @@ gtk_tool_button_set_icon_widget (GtkToolButton *button,
{
if (button->priv->icon_widget)
{
- if (button->priv->icon_widget->parent)
- gtk_container_remove (GTK_CONTAINER (button->priv->icon_widget->parent),
- button->priv->icon_widget);
+ GtkWidget *parent;
+
+ parent = gtk_widget_get_parent (button->priv->icon_widget);
+ if (parent)
+ gtk_container_remove (GTK_CONTAINER (parent),
+ button->priv->icon_widget);
g_object_unref (button->priv->icon_widget);
}
@@ -1234,10 +1246,13 @@ gtk_tool_button_set_label_widget (GtkToolButton *button,
{
if (button->priv->label_widget)
{
- if (button->priv->label_widget->parent)
- gtk_container_remove (GTK_CONTAINER (button->priv->label_widget->parent),
- button->priv->label_widget);
-
+ GtkWidget *parent;
+
+ parent = gtk_widget_get_parent (button->priv->label_widget);
+ if (parent)
+ gtk_container_remove (GTK_CONTAINER (parent),
+ button->priv->label_widget);
+
g_object_unref (button->priv->label_widget);
}