[vte] widget: Speed up scrolling in very large terminals
- From: Egmont Koblinger <egmontkob src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [vte] widget: Speed up scrolling in very large terminals
- Date: Mon, 26 May 2014 11:21:09 +0000 (UTC)
commit b8db6a28b9b809a643268941a3bd1b0dcff70198
Author: Egmont Koblinger <egmont gmail com>
Date: Mon May 26 13:14:44 2014 +0200
widget: Speed up scrolling in very large terminals
https://bugzilla.gnome.org/show_bug.cgi?id=730732
src/vte.c | 14 +++++++++++---
1 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/src/vte.c b/src/vte.c
index 297dae8..1bda1a9 100644
--- a/src/vte.c
+++ b/src/vte.c
@@ -13246,14 +13246,22 @@ update_repeat_timeout (gpointer data)
_vte_debug_print (VTE_DEBUG_WORK, "]");
/* We only stop the timer if no update request was received in this
- * past cycle.
+ * past cycle. Technically, always stop this timer object and maybe
+ * reinstall a new one because we need to delay by the amount of time
+ * it took to repaint the screen: bug 730732.
*/
- again = TRUE;
if (active_terminals == NULL) {
_vte_debug_print(VTE_DEBUG_TIMEOUT,
"Stoping update timeout\n");
update_timeout_tag = 0;
again = FALSE;
+ } else {
+ update_timeout_tag =
+ g_timeout_add_full (G_PRIORITY_DEFAULT_IDLE,
+ VTE_UPDATE_REPEAT_TIMEOUT,
+ update_repeat_timeout, NULL,
+ NULL);
+ again = TRUE;
}
in_update_timeout = FALSE;
@@ -13272,7 +13280,7 @@ update_repeat_timeout (gpointer data)
prune_chunks (10);
}
- return again;
+ return FALSE; /* If we need to go again, we already have a new timer for that. */
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]