[gnome-builder] highlighter: use low-priority source for updating highlights



commit 57e4fc416594d8975909562c3c04454fa4d021df
Author: Christian Hergert <christian hergert me>
Date:   Wed May 20 22:59:44 2015 -0700

    highlighter: use low-priority source for updating highlights
    
    This should help keep things a bit more interactive while loading lots
    of highlight data. Since we are low priority, we can be a bit more
    aggressive with our time slice too.

 libide/ide-highlight-engine.c |   13 +++++++------
 1 files changed, 7 insertions(+), 6 deletions(-)
---
diff --git a/libide/ide-highlight-engine.c b/libide/ide-highlight-engine.c
index e8469e6..457d5ac 100644
--- a/libide/ide-highlight-engine.c
+++ b/libide/ide-highlight-engine.c
@@ -26,8 +26,7 @@
 #include "ide-types.h"
 #include "ide-internal.h"
 
-#define HIGHLIGHT_QUANTA_USEC      2000
-#define WORK_TIMEOUT_MSEC          50
+#define HIGHLIGHT_QUANTA_USEC      5000
 #define PRIVATE_TAG_PREFIX        "gb-private-tag"
 
 struct _IdeHighlightEngine
@@ -364,9 +363,10 @@ ide_highlight_engine_work_timeout_handler (gpointer data)
     {
       if (ide_highlight_engine_tick (self))
         return G_SOURCE_CONTINUE;
-      self->work_timeout = 0;
     }
 
+  self->work_timeout = 0;
+
   return G_SOURCE_REMOVE;
 }
 
@@ -378,9 +378,10 @@ ide_highlight_engine_queue_work (IdeHighlightEngine *self)
   if ((self->highlighter == NULL) || (self->buffer == NULL) || (self->work_timeout != 0))
     return;
 
-  self->work_timeout = g_timeout_add (WORK_TIMEOUT_MSEC,
-                                      ide_highlight_engine_work_timeout_handler,
-                                      self);
+  self->work_timeout =  gdk_threads_add_idle_full (G_PRIORITY_LOW,
+                                                   ide_highlight_engine_work_timeout_handler,
+                                                   self,
+                                                   NULL);
 }
 
 static gboolean


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]