diff --git a/gtk/inspector/widget-tree.c b/gtk/inspector/widget-tree.c index 67f6bd207a..a819b787f5 100644 --- a/gtk/inspector/widget-tree.c +++ b/gtk/inspector/widget-tree.c @@ -81,7 +81,20 @@ static void on_widget_selected (GtkTreeSelection *selection, GtkInspectorWidgetTree *wt) { - g_signal_emit (wt, widget_tree_signals[WIDGET_CHANGED], 0); + GObject *object; + GtkTreeIter iter; + GtkTreeSelection *sel; + GtkTreeModel *model; + + sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree)); + if (gtk_tree_selection_get_selected (sel, &model, &iter)) + gtk_tree_model_get (model, &iter, + OBJECT, &object, + -1); + else + object = NULL; + + g_signal_emit (wt, widget_tree_signals[WIDGET_CHANGED], 0, object); } typedef struct @@ -187,16 +200,14 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass) object_class->finalize = gtk_inspector_widget_tree_finalize; - klass->widget_changed = NULL; - widget_tree_signals[WIDGET_CHANGED] = g_signal_new ("widget-changed", - G_OBJECT_CLASS_TYPE(klass), + G_OBJECT_CLASS_TYPE (klass), G_SIGNAL_RUN_FIRST | G_SIGNAL_NO_RECURSE, G_STRUCT_OFFSET(GtkInspectorWidgetTreeClass, widget_changed), NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); + g_cclosure_marshal_VOID__OBJECT, + G_TYPE_NONE, 1, G_TYPE_OBJECT); gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/inspector/widget-tree.ui"); gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorWidgetTree, model); @@ -204,27 +215,6 @@ gtk_inspector_widget_tree_class_init (GtkInspectorWidgetTreeClass *klass) gtk_widget_class_bind_template_callback (widget_class, on_widget_selected); } -GObject * -gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt) -{ - GtkTreeIter iter; - GtkTreeSelection *sel; - GtkTreeModel *model; - - sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (wt->priv->tree)); - - if (gtk_tree_selection_get_selected (sel, &model, &iter)) - { - GObject *object; - gtk_tree_model_get (model, &iter, - OBJECT, &object, - -1); - return object; - } - - return NULL; -} - typedef struct { GtkInspectorWidgetTree *wt; diff --git a/gtk/inspector/widget-tree.h b/gtk/inspector/widget-tree.h index 290058416a..3ccd181b62 100644 --- a/gtk/inspector/widget-tree.h +++ b/gtk/inspector/widget-tree.h @@ -46,7 +46,8 @@ typedef struct _GtkInspectorWidgetTreeClass { GtkBoxClass parent; - void (*widget_changed) (GtkInspectorWidgetTree *tree); + void (*widget_changed) (GtkInspectorWidgetTree *wt, + GObject *object); } GtkInspectorWidgetTreeClass; @@ -55,8 +56,6 @@ G_BEGIN_DECLS GType gtk_inspector_widget_tree_get_type (void); -GObject *gtk_inspector_widget_tree_get_selected_object (GtkInspectorWidgetTree *wt); - void gtk_inspector_widget_tree_scan (GtkInspectorWidgetTree *wt, GtkWidget *window); void gtk_inspector_widget_tree_select_object (GtkInspectorWidgetTree *wt, diff --git a/gtk/inspector/window.c b/gtk/inspector/window.c index 4d7a05b4bc..48a5d82444 100644 --- a/gtk/inspector/window.c +++ b/gtk/inspector/window.c @@ -49,9 +49,9 @@ G_DEFINE_TYPE (GtkInspectorWindow, gtk_inspector_window, GTK_TYPE_WINDOW) static void on_widget_tree_selection_changed (GtkInspectorWidgetTree *wt, + GObject *selected, GtkInspectorWindow *iw) { - GObject *selected = gtk_inspector_widget_tree_get_selected_object (wt); GtkWidget *notebook; const gchar *tab; gint page_num;