[gnome-builder/editor-layout] track dirty state on editor tab
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/editor-layout] track dirty state on editor tab
- Date: Sun, 30 Nov 2014 13:21:39 +0000 (UTC)
commit c502554fc499d1f8bb69393be788e26f761ac5e8
Author: Christian Hergert <christian hergert me>
Date: Sun Nov 30 04:59:26 2014 -0800
track dirty state on editor tab
src/editor/gb-editor-tab.c | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
---
diff --git a/src/editor/gb-editor-tab.c b/src/editor/gb-editor-tab.c
index 5985403..e04c9ee 100644
--- a/src/editor/gb-editor-tab.c
+++ b/src/editor/gb-editor-tab.c
@@ -438,6 +438,21 @@ gb_editor_tab_on_notify_location (GbEditorTab *tab,
}
static void
+gb_editor_tab_on_modified_changed (GbEditorTab *tab,
+ GtkTextBuffer *buffer)
+{
+ gboolean modified;
+
+ g_return_if_fail (GB_IS_EDITOR_TAB (tab));
+
+ modified = gtk_text_buffer_get_modified (buffer);
+ gb_tab_set_dirty (GB_TAB (tab), modified);
+
+ /* notify helper for tab labels wanting to render dirty tabs specially */
+ g_object_notify (G_OBJECT (tab), "title");
+}
+
+static void
gb_editor_tab_constructed (GObject *object)
{
GbEditorTabPrivate *priv;
@@ -454,6 +469,12 @@ gb_editor_tab_constructed (GObject *object)
NULL);
gb_editor_frame_set_document (priv->frame, priv->document);
+ g_signal_connect_object (priv->document,
+ "modified-changed",
+ G_CALLBACK (gb_editor_tab_on_modified_changed),
+ tab,
+ G_CONNECT_SWAPPED);
+
file = gb_editor_document_get_file (priv->document);
g_signal_connect_object (file,
"notify::location",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]