diff options
Diffstat (limited to 'gtk/gtktoolitem.c')
-rw-r--r-- | gtk/gtktoolitem.c | 18 |
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 |