Parcourir la source

Fix some lagginess caused by autosave.

5min.
tags/v1.0.0
Adrian Cochrane il y a 6 ans
Parent
révision
05cb9be6bd
1 fichiers modifiés avec 12 ajouts et 0 suppressions
  1. +12
    -0
      src/window.vala

+ 12
- 0
src/window.vala Voir le fichier

@@ -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();


Chargement…
Annuler
Enregistrer