[gnome-builder/gnome-builder-3-32] buffer-monitor: prefer IdeBufferAddin::file-loaded



commit 202dc1bc414477df9908afd4c31d026c445ba167
Author: Christian Hergert <chergert redhat com>
Date:   Tue May 7 08:10:12 2019 -0700

    buffer-monitor: prefer IdeBufferAddin::file-loaded
    
    We want to re-setup the monitor when the buffer has finished
    loading, or we risk only tracking a single external
    modification.
    
    Fixes #908

 .../buffer-monitor/gbp-buffer-monitor-buffer-addin.c  | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)
---
diff --git a/src/plugins/buffer-monitor/gbp-buffer-monitor-buffer-addin.c 
b/src/plugins/buffer-monitor/gbp-buffer-monitor-buffer-addin.c
index 8fa5fd78d..42fbb50c6 100644
--- a/src/plugins/buffer-monitor/gbp-buffer-monitor-buffer-addin.c
+++ b/src/plugins/buffer-monitor/gbp-buffer-monitor-buffer-addin.c
@@ -236,16 +236,12 @@ gbp_buffer_monitor_buffer_addin_load (IdeBufferAddin *addin,
   GbpBufferMonitorBufferAddin *self = (GbpBufferMonitorBufferAddin *)addin;
   g_autoptr(IdeContext) context = NULL;
   IdeProject *project;
-  GFile *file;
 
   g_assert (GBP_IS_BUFFER_MONITOR_BUFFER_ADDIN (self));
   g_assert (IDE_IS_BUFFER (buffer));
 
   self->buffer = buffer;
 
-  file = ide_buffer_get_file (buffer);
-  gbp_buffer_monitor_buffer_addin_setup_monitor (self, file);
-
   context = ide_buffer_ref_context (buffer);
   project = ide_project_from_context (context);
   g_signal_connect_object (project,
@@ -319,6 +315,20 @@ gbp_buffer_monitor_buffer_addin_file_saved (IdeBufferAddin *addin,
   gbp_buffer_monitor_buffer_addin_setup_monitor (self, current);
 }
 
+static void
+gbp_buffer_monitor_buffer_addin_file_loaded (IdeBufferAddin *addin,
+                                             IdeBuffer      *buffer,
+                                             GFile          *file)
+{
+  GbpBufferMonitorBufferAddin *self = (GbpBufferMonitorBufferAddin *)addin;
+
+  g_assert (IDE_IS_BUFFER_ADDIN (addin));
+  g_assert (IDE_IS_BUFFER (buffer));
+  g_assert (G_IS_FILE (file));
+
+  gbp_buffer_monitor_buffer_addin_setup_monitor (self, file);
+}
+
 static void
 buffer_addin_iface_init (IdeBufferAddinInterface *iface)
 {
@@ -326,6 +336,7 @@ buffer_addin_iface_init (IdeBufferAddinInterface *iface)
   iface->unload = gbp_buffer_monitor_buffer_addin_unload;
   iface->save_file = gbp_buffer_monitor_buffer_addin_save_file;
   iface->file_saved = gbp_buffer_monitor_buffer_addin_file_saved;
+  iface->file_loaded = gbp_buffer_monitor_buffer_addin_file_loaded;
 }
 
 G_DEFINE_TYPE_WITH_CODE (GbpBufferMonitorBufferAddin, gbp_buffer_monitor_buffer_addin, G_TYPE_OBJECT,


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