Fix some lagginess caused by autosave.

5min.
This commit is contained in:
Adrian Cochrane 2018-04-18 13:21:10 +12:00
parent dcde2f0bda
commit 05cb9be6bd

View File

@ -13,15 +13,27 @@ public class WriteAs.MainWindow : Gtk.ApplicationWindow {
canvas = new Gtk.TextView();
canvas.wrap_mode = Gtk.WrapMode.WORD_CHAR;
add(canvas);
var text_changed = false;
canvas.event_after.connect((evt) => {
// TODO This word count algorithm may be quite naive
// and could do improvement.
var word_count = canvas.buffer.text.split(" ").length;
title = ngettext("%i word","%i words",word_count).printf(word_count);
text_changed = true;
});
Timeout.add_full(Priority.DEFAULT_IDLE, 100/*ms*/, () => {
if (!text_changed) return Source.CONTINUE;
try {
draft_file().replace_contents(canvas.buffer.text.data, null, false,
FileCreateFlags.PRIVATE | FileCreateFlags.REPLACE_DESTINATION,
null);
text_changed = false;
} catch (Error err) {/* We'll try again anyways. */}
return Source.CONTINUE;
});
adjust_text_style();