commit 81acf6b893d9889646b7161a39a549c323d137d9
parent 367d6a780ea707df1ab4ce9da7201598bc1718ad
Author: Charles Lehner <cel@celehner.com>
Date: Thu, 16 Jul 2015 23:51:00 -0400
managesieve: don't reset status while appending text
Diffstat:
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/src/plugins/managesieve/sieve_editor.c b/src/plugins/managesieve/sieve_editor.c
@@ -54,6 +54,7 @@ gboolean sieve_editor_search_string_backward(void *obj,
const gchar *str, gboolean case_sens);
static void sieve_editor_save_cb(GtkAction *action, SieveEditorPage *page);
static void sieve_editor_check_cb(GtkAction *action, SieveEditorPage *page);
+static void sieve_editor_changed_cb(GtkTextBuffer *, SieveEditorPage *page);
static void sieve_editor_revert_cb(GtkAction *action, SieveEditorPage *page);
static void sieve_editor_close_cb(GtkAction *action, SieveEditorPage *page);
static void sieve_editor_undo_cb(GtkAction *action, SieveEditorPage *page);
@@ -113,14 +114,19 @@ void sieve_editor_append_text(SieveEditorPage *page, gchar *text, gint len)
{
GtkTextBuffer *buffer;
GtkTextIter iter;
- gboolean was_modified = page->modified;
- undo_block(page->undostruct);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(page->text));
+
+ g_signal_handlers_block_by_func(G_OBJECT(buffer),
+ G_CALLBACK(sieve_editor_changed_cb), page);
+
+ undo_block(page->undostruct);
gtk_text_buffer_get_end_iter(buffer, &iter);
gtk_text_buffer_insert(buffer, &iter, text, len);
undo_unblock(page->undostruct);
- sieve_editor_set_modified(page, was_modified);
+
+ g_signal_handlers_unblock_by_func(G_OBJECT(buffer),
+ G_CALLBACK(sieve_editor_changed_cb), page);
}
static gint sieve_editor_get_text(SieveEditorPage *page, gchar **text)