[gnome-builder/gnome-builder-3-24] libide: unregister auto-save on save buffer



commit 339975c02baf44bf9cb42b0d8aec35154ffc7c67
Author: Gennady Kovalev <gik bigur ru>
Date:   Sun Apr 2 23:45:59 2017 +0300

    libide: unregister auto-save on save buffer
    
    Unregister auto-save timer on save file by user.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=780847

 libide/buffers/ide-buffer-manager.c |   23 +++++++++++++++--------
 1 files changed, 15 insertions(+), 8 deletions(-)
---
diff --git a/libide/buffers/ide-buffer-manager.c b/libide/buffers/ide-buffer-manager.c
index f57cc78..06819b0 100644
--- a/libide/buffers/ide-buffer-manager.c
+++ b/libide/buffers/ide-buffer-manager.c
@@ -334,6 +334,7 @@ static gboolean
 ide_buffer_manager_auto_save_cb (gpointer data)
 {
   AutoSave *state = data;
+  gboolean saved = FALSE;
 
   g_assert (state);
   g_assert (IDE_IS_BUFFER_MANAGER (state->self));
@@ -345,16 +346,20 @@ ide_buffer_manager_auto_save_cb (gpointer data)
       IdeFile *file = ide_buffer_get_file (state->buffer);
 
       if (file != NULL)
-        ide_buffer_manager_save_file_async (state->self,
-                                            state->buffer,
-                                            file,
-                                            NULL,
-                                            NULL,
-                                            NULL,
-                                            NULL);
+        {
+          ide_buffer_manager_save_file_async (state->self,
+                                              state->buffer,
+                                              file,
+                                              NULL,
+                                              NULL,
+                                              NULL,
+                                              NULL);
+          saved = TRUE;
+        }
     }
 
-  unregister_auto_save (state->self, state->buffer);
+  if (!saved)
+    unregister_auto_save (state->self, state->buffer);
 
   return G_SOURCE_REMOVE;
 }
@@ -1149,6 +1154,8 @@ ide_buffer_manager_save_file_async (IdeBufferManager     *self,
                                 cancellable,
                                 ide_buffer_manager_save_file__load_settings_cb,
                                 g_object_ref (task));
+
+  unregister_auto_save (self, state->buffer);
 }
 
 /**


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