inspector: Fix some criticals
authorMatthias Clasen <mclasen@redhat.com>
Sun, 9 Oct 2022 13:08:24 +0000 (09:08 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 9 Oct 2022 13:10:39 +0000 (09:10 -0400)
This is fallout from the recent porting to GtkColumnView.

gtk/inspector/css-node-tree.c

index f15eed3ca2d893d78d8d5b27b68b0b0a5f66c287..30651f5d6571046a469d2e5cecf3c280cc957f85 100644 (file)
@@ -188,19 +188,25 @@ G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorCssNodeTree, gtk_inspector_css_node_tree
 static void
 gtk_inspector_css_node_tree_set_node (GtkInspectorCssNodeTree *cnt,
                                       GtkCssNode              *node);
+static void
+gtk_inspector_css_node_tree_unset_node (GtkInspectorCssNodeTree *cnt);
 
 static void
 selection_changed (GtkSelectionModel       *model,
                    GParamSpec              *pspec,
                    GtkInspectorCssNodeTree *cnt)
 {
-  GtkTreeListRow *row;
-  GtkCssNode *node;
-
-  row = gtk_single_selection_get_selected_item (cnt->priv->selection_model);
-  node = gtk_tree_list_row_get_item (row);
+  if (gtk_single_selection_get_selected (cnt->priv->selection_model) != GTK_INVALID_LIST_POSITION)
+    {
+      GtkTreeListRow *row;
+      GtkCssNode *node;
 
-  gtk_inspector_css_node_tree_set_node (cnt, node);
+      row = gtk_single_selection_get_selected_item (cnt->priv->selection_model);
+      node = gtk_tree_list_row_get_item (row);
+      gtk_inspector_css_node_tree_set_node (cnt, node);
+    }
+  else
+    gtk_inspector_css_node_tree_unset_node (cnt);
 }
 
 static void
@@ -261,8 +267,6 @@ gtk_inspector_css_node_tree_finalize (GObject *object)
 
   gtk_inspector_css_node_tree_unset_node (cnt);
 
-  g_object_unref (cnt->priv->prop_model);
-
   G_OBJECT_CLASS (gtk_inspector_css_node_tree_parent_class)->finalize (object);
 }