[gnome-builder] editor: update GbTab:dirty when document modification changes.



commit ea5d1d2aff2a07b4ecca5f3b65a5b324e1f99b79
Author: Christian Hergert <christian hergert me>
Date:   Tue Sep 9 01:26:08 2014 -0700

    editor: update GbTab:dirty when document modification changes.

 src/editor/gb-editor-tab.c |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/src/editor/gb-editor-tab.c b/src/editor/gb-editor-tab.c
index 454e8c8..c1801b1 100644
--- a/src/editor/gb-editor-tab.c
+++ b/src/editor/gb-editor-tab.c
@@ -657,6 +657,19 @@ gb_editor_tab_cursor_moved (GbEditorTab      *tab,
   update_search_position_label (tab);
 }
 
+static void
+gb_editor_tab_modified_changed (GbEditorTab   *tab,
+                                GtkTextBuffer *buffer)
+{
+  gboolean dirty;
+
+  g_return_if_fail (GTK_IS_TEXT_BUFFER (buffer));
+  g_return_if_fail (GB_IS_EDITOR_TAB (tab));
+
+  dirty = gtk_text_buffer_get_modified (buffer);
+  gb_tab_set_dirty (GB_TAB (tab), dirty);
+}
+
 void
 gb_editor_tab_set_font_desc (GbEditorTab                *tab,
                              const PangoFontDescription *font_desc)
@@ -802,6 +815,9 @@ on_save_cb (GtkSourceFileSaver *saver,
       g_warning ("%s", error->message);
       g_clear_error (&error);
     }
+  else
+    gtk_text_buffer_set_modified (GTK_TEXT_BUFFER (tab->priv->document),
+                                  FALSE);
 
   g_object_unref (tab);
 }
@@ -1366,6 +1382,10 @@ gb_editor_tab_constructed (GObject *object)
     gb_editor_tab_set_settings (tab, NULL);
 
   g_signal_connect_swapped (priv->document,
+                            "modified-changed",
+                            G_CALLBACK (gb_editor_tab_modified_changed),
+                            tab);
+  g_signal_connect_swapped (priv->document,
                             "cursor-moved",
                             G_CALLBACK (gb_editor_tab_cursor_moved),
                             tab);


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