[gnome-builder] gui: load search engine as part of project load



commit 3b0b2d6f75e98bb86b4db06e501bd25b06363690
Author: Christian Hergert <chergert redhat com>
Date:   Tue Sep 10 16:18:48 2019 -0700

    gui: load search engine as part of project load
    
    Technically there are still races, especially for very large projects as
    we don't have a way to wait on the async creation of the search index.
    
    A better fix would take that into account but is a bit more complex and
    requires chaining tasks.
    
    Fixes #1034

 src/libide/gui/ide-workbench.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/src/libide/gui/ide-workbench.c b/src/libide/gui/ide-workbench.c
index 99d219ac0..59319a391 100644
--- a/src/libide/gui/ide-workbench.c
+++ b/src/libide/gui/ide-workbench.c
@@ -1006,6 +1006,11 @@ ide_workbench_load_project_completed (IdeWorkbench *self,
       ide_workbench_set_vcs (self, IDE_VCS (vcs));
     }
 
+  /* Create the search engine up-front */
+  if (self->search_engine == NULL)
+    self->search_engine = ide_object_ensure_child_typed (IDE_OBJECT (self->context),
+                                                         IDE_TYPE_SEARCH_ENGINE);
+
   if (lp->workspace_type != G_TYPE_INVALID)
     {
       IdeWorkspace *workspace;
@@ -1457,8 +1462,8 @@ ide_workbench_get_search_engine (IdeWorkbench *self)
   g_return_val_if_fail (self->context != NULL, NULL);
 
   if (self->search_engine == NULL)
-      self->search_engine = ide_object_ensure_child_typed (IDE_OBJECT (self->context),
-                                                           IDE_TYPE_SEARCH_ENGINE);
+    self->search_engine = ide_object_ensure_child_typed (IDE_OBJECT (self->context),
+                                                         IDE_TYPE_SEARCH_ENGINE);
 
   return self->search_engine;
 }


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