aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/view.c
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2021-10-11 08:43:33 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2021-10-11 08:43:33 +0300
commit8baa1b3ebe163de3a55696e50d49f160529473b3 (patch)
treec7d54d763c5743765206ab125fffc28cea9d95d6 /src/view.c
parent6e67f5a682ff46d69888fec61b94bf45cec46721 (diff)
downloadsciteco-8baa1b3ebe163de3a55696e50d49f160529473b3.tar.gz
optimized character representation setting
* Esp. with the new Scintilla version, the representation setting as part of every SCI_SETDOCPOINTER has turned out to be a performance bottleneck. * The new Scintilla has a custom tweak/patch that disables any automatic representation setting in Scintilla itself. It is now sufficient to initialize the SciTECO-style representations only once in the lifetime of any view.
Diffstat (limited to 'src/view.c')
-rw-r--r--src/view.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/view.c b/src/view.c
index 80835a2..3d67bef 100644
--- a/src/view.c
+++ b/src/view.c
@@ -107,6 +107,14 @@ teco_view_setup(teco_view_t *ctx)
*/
teco_view_ssm(ctx, SCI_STYLESETFORE, STYLE_CALLTIP, 0x000000);
teco_view_ssm(ctx, SCI_STYLESETBACK, STYLE_CALLTIP, 0xFFFFFF);
+
+ /*
+ * Since we have patched out Scintilla's original SetRepresentations(),
+ * it no longer resets them on SCI_SETDOCPOINTER.
+ * Therefore it is sufficient for all kinds of views to initialize
+ * the representations only once.
+ */
+ teco_view_set_representations(ctx);
}
TECO_DEFINE_UNDO_CALL(teco_view_ssm, teco_view_t *, unsigned int, uptr_t, sptr_t);
@@ -128,8 +136,6 @@ teco_view_set_representations(teco_view_t *ctx)
}
}
-TECO_DEFINE_UNDO_CALL(teco_view_set_representations, teco_view_t *);
-
/**
* Loads the view's document by reading all data from
* a GIOChannel.