[gnome-builder] project-tree: select parent node when creating a sibling



commit 9a5d06874a6df3f1eec758641191b77555d7f9b7
Author: Christian Hergert <christian hergert me>
Date:   Fri Apr 10 23:30:51 2015 -0700

    project-tree: select parent node when creating a sibling
    
    Make it a bit more obvious we are creating a child of the parent by
    selecting the parent node before displaying the popover.

 src/project-tree/gb-project-tree-actions.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/src/project-tree/gb-project-tree-actions.c b/src/project-tree/gb-project-tree-actions.c
index d10f0b0..e3b3fa3 100644
--- a/src/project-tree/gb-project-tree-actions.c
+++ b/src/project-tree/gb-project-tree-actions.c
@@ -327,7 +327,6 @@ static void
 gb_project_tree_actions_new (GbProjectTree *self,
                              GFileType      file_type)
 {
-  g_autoptr(GFile) parent = NULL;
   GbTreeNode *selected;
   GObject *item;
   GtkPopover *popover;
@@ -340,6 +339,7 @@ gb_project_tree_actions_new (GbProjectTree *self,
   g_assert ((file_type == G_FILE_TYPE_DIRECTORY) ||
             (file_type == G_FILE_TYPE_REGULAR));
 
+again:
   if (!(selected = gb_tree_get_selected (GB_TREE (self))) ||
       !(item = gb_tree_node_get_item (selected)) ||
       !IDE_IS_PROJECT_FILE (item) ||
@@ -353,8 +353,9 @@ gb_project_tree_actions_new (GbProjectTree *self,
    */
   if (!project_file_is_directory (item))
     {
-      parent = g_file_get_parent (file);
-      file = parent;
+      selected = gb_tree_node_get_parent (selected);
+      gb_tree_node_select (selected);
+      goto again;
     }
 
   if ((self->expanded_in_new = !gb_tree_node_get_expanded (selected)))


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