summaryrefslogtreecommitdiff
path: root/gtk/gtktoolitem.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/gtktoolitem.c')
-rw-r--r--gtk/gtktoolitem.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/gtk/gtktoolitem.c b/gtk/gtktoolitem.c
index c8092473e2..03ce5b88f2 100644
--- a/gtk/gtktoolitem.c
+++ b/gtk/gtktoolitem.c
@@ -87,8 +87,9 @@ struct _GtkToolItemPrivate
};
static void gtk_tool_item_finalize (GObject *object);
-static void gtk_tool_item_parent_set (GtkWidget *toolitem,
- GtkWidget *parent);
+static void gtk_tool_item_parent_cb (GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data);
static void gtk_tool_item_set_property (GObject *object,
guint prop_id,
const GValue *value,
@@ -119,8 +120,6 @@ gtk_tool_item_class_init (GtkToolItemClass *klass)
object_class->finalize = gtk_tool_item_finalize;
object_class->notify = gtk_tool_item_property_notify;
- widget_class->parent_set = gtk_tool_item_parent_set;
-
klass->create_menu_proxy = _gtk_tool_item_create_menu_proxy;
g_object_class_install_property (object_class,
@@ -215,6 +214,8 @@ gtk_tool_item_init (GtkToolItem *toolitem)
toolitem->priv->visible_vertical = TRUE;
toolitem->priv->homogeneous = FALSE;
toolitem->priv->expand = FALSE;
+
+ g_signal_connect (toolitem, "notify::parent", G_CALLBACK (gtk_tool_item_parent_cb), NULL);
}
static void
@@ -231,11 +232,14 @@ gtk_tool_item_finalize (GObject *object)
}
static void
-gtk_tool_item_parent_set (GtkWidget *toolitem,
- GtkWidget *prev_parent)
+gtk_tool_item_parent_cb (GObject *object,
+ GParamSpec *pspec,
+ gpointer user_data)
{
+ GtkToolItem *toolitem = GTK_TOOL_ITEM (object);
+
if (gtk_widget_get_parent (GTK_WIDGET (toolitem)) != NULL)
- gtk_tool_item_toolbar_reconfigured (GTK_TOOL_ITEM (toolitem));
+ gtk_tool_item_toolbar_reconfigured (toolitem);
}
static void