From e17d297dca2ec2402f904a495cd5dd3d5bace032 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Tue, 2 Jul 2019 19:45:17 +0200 Subject: [PATCH] term: if the damage list gets too long, replace with a full redraw --- terminal.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/terminal.c b/terminal.c index ee46fea3..2aac7f6e 100644 --- a/terminal.c +++ b/terminal.c @@ -48,10 +48,18 @@ static void term_damage_update_or_erase(struct terminal *term, enum damage_type damage_type, int start, int length) { +#if 1 + if (tll_length(term->grid->damage) > 1024) { + term_damage_all(term); + return; + } +#endif + struct damage dmg = { .type = damage_type, .range = {.start = term->grid->offset + start, .length = length}, }; + if (damage_merge_range(term, &dmg)) return;