[gtk+/parasite2] inspector: clean up better when objects go away



commit 229dcdd350a8325f8e4c004ac0ad26dbee0abcbd
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat May 10 12:26:22 2014 -0400

    inspector: clean up better when objects go away
    
    Instead of manually doing it everywhere, just call set_object (NULL)
    from the selection_changed handler. Fix all the set_object() functions
    to deal with NULL.

 modules/inspector/object-hierarchy.c |    3 +++
 modules/inspector/window.c           |   28 ++++++++++++----------------
 2 files changed, 15 insertions(+), 16 deletions(-)
---
diff --git a/modules/inspector/object-hierarchy.c b/modules/inspector/object-hierarchy.c
index 50ce6b2..6576a85 100644
--- a/modules/inspector/object-hierarchy.c
+++ b/modules/inspector/object-hierarchy.c
@@ -73,6 +73,9 @@ gtk_inspector_object_hierarchy_set_object (GtkInspectorObjectHierarchy *oh,
 
   gtk_tree_store_clear (oh->priv->model);
 
+  if (object == NULL)
+    return;
+
   interfaces = g_hash_table_new (g_str_hash, g_str_equal);
   type = ((GTypeInstance*)object)->g_class->g_type;
   
diff --git a/modules/inspector/window.c b/modules/inspector/window.c
index 37363ef..9434580 100644
--- a/modules/inspector/window.c
+++ b/modules/inspector/window.c
@@ -102,22 +102,18 @@ on_widget_tree_selection_changed (GtkInspectorWidgetTree *wt,
 {
   GObject *selected = gtk_inspector_widget_tree_get_selected_object (wt);
 
-  if (selected != NULL)
-    {
-      if (!gtk_inspector_prop_list_set_object (GTK_INSPECTOR_PROP_LIST (iw->prop_list), selected))
-        return;
-
-      gtk_inspector_prop_list_set_object (GTK_INSPECTOR_PROP_LIST (iw->child_prop_list), selected);
-      gtk_inspector_signals_list_set_object (GTK_INSPECTOR_SIGNALS_LIST (iw->signals_list), selected);
-      gtk_inspector_object_hierarchy_set_object (GTK_INSPECTOR_OBJECT_HIERARCHY (iw->object_hierarchy), 
selected);
-      gtk_inspector_button_path_set_object (GTK_INSPECTOR_BUTTON_PATH (iw->button_path), selected);
-      gtk_inspector_classes_list_set_object (GTK_INSPECTOR_CLASSES_LIST (iw->classes_list), selected);
-      gtk_inspector_css_editor_set_object (GTK_INSPECTOR_CSS_EDITOR (iw->widget_css_editor), selected);
-      gtk_inspector_data_list_set_object (GTK_INSPECTOR_DATA_LIST (iw->data_list), selected);
-
-      if (GTK_IS_WIDGET (selected))
-        gtk_inspector_flash_widget (iw, GTK_WIDGET (selected));
-    }
+  if (!gtk_inspector_prop_list_set_object (GTK_INSPECTOR_PROP_LIST (iw->prop_list), selected))
+    return;
+
+  gtk_inspector_prop_list_set_object (GTK_INSPECTOR_PROP_LIST (iw->child_prop_list), selected);
+  gtk_inspector_signals_list_set_object (GTK_INSPECTOR_SIGNALS_LIST (iw->signals_list), selected);
+  gtk_inspector_object_hierarchy_set_object (GTK_INSPECTOR_OBJECT_HIERARCHY (iw->object_hierarchy), 
selected);
+  gtk_inspector_button_path_set_object (GTK_INSPECTOR_BUTTON_PATH (iw->button_path), selected);
+  gtk_inspector_classes_list_set_object (GTK_INSPECTOR_CLASSES_LIST (iw->classes_list), selected);
+  gtk_inspector_css_editor_set_object (GTK_INSPECTOR_CSS_EDITOR (iw->widget_css_editor), selected);
+  gtk_inspector_data_list_set_object (GTK_INSPECTOR_DATA_LIST (iw->data_list), selected);
+  if (GTK_IS_WIDGET (selected))
+    gtk_inspector_flash_widget (iw, GTK_WIDGET (selected));
 }
 
 static void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]