Sorry, I forgot to include the patch.

Thanks,

Evandro

diff -Naurp geany-0.20/src/document.c geany-0.20_fast/src/document.c
--- geany-0.20/src/document.c    2012-11-23 20:22:22.564735000 -0800
+++ geany-0.20_fast/src/document.c    2012-11-24 12:47:50.110927000 -0800
@@ -2676,7 +2676,10 @@ void document_undo_add(GeanyDocument *do
 
     g_trash_stack_push(&doc->priv->undo_actions, action);
 
-    document_set_text_changed(doc, TRUE);
+    if (doc->changed != TRUE) {
+        document_set_text_changed(doc, TRUE);
+    }
+
     ui_update_popup_reundo_items(doc);
 }
 
@@ -2840,7 +2843,10 @@ static void document_redo_add(GeanyDocum
 
     g_trash_stack_push(&doc->priv->redo_actions, action);
 
-    document_set_text_changed(doc, TRUE);
+    if (doc->changed != TRUE) {
+        document_set_text_changed(doc, TRUE);
+    }
+
     ui_update_popup_reundo_items(doc);
 }
 


2012/11/24 Evandro Borracini <evandro.borracini@gmail.com>
Hi,

Thanks everyone for the comments and suggestions. Based on them, I reverted back to the original code and just added an "if (doc->changed != TRUE)" before calling document_set_text_changed(doc, TRUE) in document_undo/redo_add().

That prevents calling document_set_text_changed() again if doc->changed is already TRUE.

It worked fine and I don't see the latency anymore. :-)

Please find the complete patch below. Document_set_text_changed() function is not changed.

Please comment on that.


Thanks again and regards,

Evandro



2012/11/24 Nick Treleaven <nick.treleaven@btinternet.com>
On 24/11/2012 14:04, Colomban Wendling wrote:
A solution might be to only do the updates if (doc->changed != changed).
  I didn't look at the interactions with the rest of Geany (nor test it
actually), but looking at this I guess that changing it to:

I played with this a little. It won't work easily because document_set_text_changed is sometimes called to force a UI update, possibly even when the current doc hasn't changed. The API docs describe this behavior also.

_______________________________________________
Devel mailing list
Devel@lists.geany.org
https://lists.geany.org/cgi-bin/mailman/listinfo/devel