]> Pileus Git - ~andy/gtk/commitdiff
treeview: Reorder code a bit
authorBenjamin Otte <otte@redhat.com>
Sat, 26 Nov 2011 22:49:05 +0000 (23:49 +0100)
committerBenjamin Otte <otte@redhat.com>
Tue, 29 Nov 2011 19:44:57 +0000 (20:44 +0100)
This is mainly in preparation for the next commit, but also to reorder
the code to
1) prepare modification of tree
2) modify tree
3) emit signals

gtk/gtktreeview.c

index 29c6b4db3d244108b925f5f6cf5939de97a492f9..698052c7d2ae1c17f1dc099d1ef41f5f35115c1c 100644 (file)
@@ -12807,6 +12807,7 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
   gint x, y;
   GList *list;
   GdkWindow *child;
+  gboolean selection_changed;
 
   if (animate)
     g_object_get (gtk_widget_get_settings (GTK_WIDGET (tree_view)),
@@ -12895,19 +12896,18 @@ gtk_tree_view_real_collapse_row (GtkTreeView *tree_view,
       gtk_tree_path_free (anchor_path);
     }
 
+  selection_changed = gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children);
+  
   /* Stop a pending double click */
   tree_view->priv->last_button_x = -1;
   tree_view->priv->last_button_y = -1;
 
   _gtk_tree_view_accessible_remove (tree_view, node->children, NULL);
 
-  if (gtk_tree_view_unref_and_check_selection_tree (tree_view, node->children))
-    {
-      _gtk_rbtree_remove (node->children);
+  _gtk_rbtree_remove (node->children);
+
+  if (selection_changed)
       g_signal_emit_by_name (tree_view->priv->selection, "changed");
-    }
-  else
-    _gtk_rbtree_remove (node->children);
 
   if (animate)
     {