[gnome-builder] pipeline: disconnect ready tracking after setup



commit 538d0c15ef7ab1dfae3f1133d1f375338b7a63ad
Author: Christian Hergert <chergert redhat com>
Date:   Thu Jan 18 18:52:42 2018 -0800

    pipeline: disconnect ready tracking after setup
    
    We can't really handle a single pipeline tracking load/unload/load, so
    just disconnect our unload tracking after we have connected.
    
    Instead, we rely on the build manager to reset the pipeline when the
    configuration changes.

 src/libide/buildsystem/ide-build-pipeline.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/src/libide/buildsystem/ide-build-pipeline.c b/src/libide/buildsystem/ide-build-pipeline.c
index 9139aeba3..a44a4e375 100644
--- a/src/libide/buildsystem/ide-build-pipeline.c
+++ b/src/libide/buildsystem/ide-build-pipeline.c
@@ -984,10 +984,20 @@ ide_build_pipeline_notify_ready (IdeBuildPipeline *self,
   g_assert (IDE_IS_BUILD_PIPELINE (self));
   g_assert (IDE_IS_CONFIGURATION (configuration));
 
+  /*
+   * If we're being realistic, we can only really setup the build pipeline one
+   * time, once the configuration is ready. So cancel all tracking after that
+   * so that and just rely on the build manager to create a new pipeline when
+   * the active configuration changes.
+   */
+
   if (ide_configuration_get_ready (configuration))
-    ide_build_pipeline_load (self);
-  else
-    ide_build_pipeline_unload (self);
+    {
+      ide_build_pipeline_load (self);
+      g_signal_handlers_disconnect_by_func (configuration,
+                                            G_CALLBACK (ide_build_pipeline_notify_ready),
+                                            self);
+    }
 
   IDE_EXIT;
 }


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