[gnome-builder] project-tree: don't focus on implicit reveal operations



commit 31611a335ff1e2717f9d01cbb53be049dc67563c
Author: Christian Hergert <chergert redhat com>
Date:   Fri Nov 11 18:27:16 2016 -0800

    project-tree: don't focus on implicit reveal operations

 .../project-tree/gb-project-tree-editor-addin.c    |    2 +-
 plugins/project-tree/gb-project-tree.c             |   12 +++++++-----
 plugins/project-tree/gb-project-tree.h             |    3 ++-
 3 files changed, 10 insertions(+), 7 deletions(-)
---
diff --git a/plugins/project-tree/gb-project-tree-editor-addin.c 
b/plugins/project-tree/gb-project-tree-editor-addin.c
index 6bc532b..c38bca8 100644
--- a/plugins/project-tree/gb-project-tree-editor-addin.c
+++ b/plugins/project-tree/gb-project-tree-editor-addin.c
@@ -73,7 +73,7 @@ gb_project_tree_editor_addin_reveal (GSimpleAction *action,
   g_assert (!file || G_IS_FILE (file));
 
   if (G_IS_FILE (file))
-    gb_project_tree_reveal (tree, file);
+    gb_project_tree_reveal (tree, file, TRUE);
 }
 
 static void
diff --git a/plugins/project-tree/gb-project-tree.c b/plugins/project-tree/gb-project-tree.c
index e789a4a..f67a94e 100644
--- a/plugins/project-tree/gb-project-tree.c
+++ b/plugins/project-tree/gb-project-tree.c
@@ -73,7 +73,7 @@ gb_project_tree_project_file_renamed (GbProjectTree *self,
   g_assert (IDE_IS_PROJECT (project));
 
   ide_tree_rebuild (IDE_TREE (self));
-  gb_project_tree_reveal (self, dst_file);
+  gb_project_tree_reveal (self, dst_file, FALSE);
 
   IDE_EXIT;
 }
@@ -149,7 +149,7 @@ gb_project_tree_vcs_changed (GbProjectTree *self,
   ide_tree_rebuild (IDE_TREE (self));
 
   if (file != NULL)
-    gb_project_tree_reveal (self, file);
+    gb_project_tree_reveal (self, file, FALSE);
 }
 
 static void
@@ -179,7 +179,7 @@ gb_project_tree_buffer_saved_cb (GbProjectTree    *self,
       if (NULL == (node = ide_tree_find_custom (IDE_TREE (self), compare_to_file, gfile)))
         ide_tree_rebuild (IDE_TREE (self));
 
-      gb_project_tree_reveal (self, gfile);
+      gb_project_tree_reveal (self, gfile, FALSE);
     }
 }
 
@@ -425,7 +425,8 @@ find_files_node (IdeTree     *tree,
 
 void
 gb_project_tree_reveal (GbProjectTree *self,
-                        GFile         *file)
+                        GFile         *file,
+                        gboolean       focus_tree_view)
 {
   g_autofree gchar *relpath = NULL;
   g_auto(GStrv) parts = NULL;
@@ -468,5 +469,6 @@ gb_project_tree_reveal (GbProjectTree *self,
   ide_tree_scroll_to_node (IDE_TREE (self), node);
   ide_tree_node_select (node);
 
-  ide_workbench_focus (ide_widget_get_workbench (GTK_WIDGET (self)), GTK_WIDGET (self));
+  if (focus_tree_view)
+    ide_workbench_focus (ide_widget_get_workbench (GTK_WIDGET (self)), GTK_WIDGET (self));
 }
diff --git a/plugins/project-tree/gb-project-tree.h b/plugins/project-tree/gb-project-tree.h
index 4fd7b33..ae17520 100644
--- a/plugins/project-tree/gb-project-tree.h
+++ b/plugins/project-tree/gb-project-tree.h
@@ -35,7 +35,8 @@ gboolean    gb_project_tree_get_show_ignored_files (GbProjectTree *self);
 void        gb_project_tree_set_show_ignored_files (GbProjectTree *self,
                                                     gboolean       show_ignored_files);
 void        gb_project_tree_reveal                 (GbProjectTree *self,
-                                                    GFile         *file);
+                                                    GFile         *file,
+                                                    gboolean       focus_tree_view);
 
 G_END_DECLS
 


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