SF.net SVN: geany: [2630] trunk

ntrel at users.sourceforge.net ntrel at xxxxx
Fri May 30 14:45:18 UTC 2008


Revision: 2630
          http://geany.svn.sourceforge.net/geany/?rev=2630&view=rev
Author:   ntrel
Date:     2008-05-30 07:45:17 -0700 (Fri, 30 May 2008)

Log Message:
-----------
Handle non-Scintilla GUI updates after SCN_PAINTED instead of
SCN_UPDATEUI to hopefully appear more responsive to typing.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/editor.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2008-05-30 14:25:22 UTC (rev 2629)
+++ trunk/ChangeLog	2008-05-30 14:45:17 UTC (rev 2630)
@@ -4,6 +4,9 @@
    Add deprecated macro for doc_array.
  * src/editor.c:
    Allow line breaking after typing any character, not just wordchars.
+ * src/editor.c:
+   Handle non-Scintilla GUI updates after SCN_PAINTED instead of
+   SCN_UPDATEUI to hopefully appear more responsive to typing.
 
 
 2008-05-29  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: trunk/src/editor.c
===================================================================
--- trunk/src/editor.c	2008-05-30 14:25:22 UTC (rev 2629)
+++ trunk/src/editor.c	2008-05-30 14:45:17 UTC (rev 2630)
@@ -170,19 +170,15 @@
 }
 
 
+/* Note: Any GUI updates that don't affect scintilla should be done in on_painted(). */
 static void on_update_ui(gint idx, G_GNUC_UNUSED SCNotification *nt)
 {
 	ScintillaObject *sci = documents[idx]->sci;
 	gint pos = sci_get_current_position(sci);
 
-	/* undo / redo menu update */
-	ui_update_popup_reundo_items(idx);
-
 	/* brace highlighting */
 	editor_highlight_braces(sci, pos);
 
-	ui_update_statusbar(idx, pos);
-
 	/* Visible lines are only laid out accurately once [SCN_UPDATEUI] is sent,
 	 * so we need to only call sci_scroll_to_line here, because the document
 	 * may have line wrapping and folding enabled.
@@ -209,6 +205,20 @@
 }
 
 
+/* Any GUI updates that don't affect scintilla should be done here to
+ * appear more responsive to typing. */
+static void on_painted(gint idx, G_GNUC_UNUSED SCNotification *nt)
+{
+	ScintillaObject *sci = documents[idx]->sci;
+	gint pos = sci_get_current_position(sci);
+
+	/* undo / redo menu update */
+	ui_update_popup_reundo_items(idx);
+
+	ui_update_statusbar(idx, pos);
+}
+
+
 static void check_line_breaking(gint idx, gint pos, gchar c)
 {
 	GeanyDocument *doc = documents[idx];
@@ -455,6 +465,10 @@
 			on_update_ui(idx, nt);
 			break;
 
+		case SCN_PAINTED:
+			on_painted(idx, nt);
+			break;
+
  		case SCN_MODIFIED:
 		{
 			if (nt->modificationType & SC_STARTACTION && ! ignore_callback)


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list