From 810a9651a362992383081619ca63122f41f1cd0a Mon Sep 17 00:00:00 2001 From: NRK Date: Wed, 1 Jun 2022 14:59:16 +0600 Subject: reduce calls to win-title rather than calling the script unconditionally per redraw, we now have a `title_dirty` flag and keep track of when any of the relavent information changes. Co-authored-by: Arthur Williams Partially fixes: https://github.com/nsxiv/nsxiv/issues/258 --- main.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'main.c') diff --git a/main.c b/main.c index 5dc52d4..7c7b436 100644 --- a/main.c +++ b/main.c @@ -85,6 +85,8 @@ static struct { extcmd_t f; } wintitle; +bool title_dirty; + static timeout_t timeouts[] = { { { 0, 0 }, false, redraw }, { { 0, 0 }, false, reset_cursor }, @@ -343,6 +345,7 @@ void load_image(int new) close_info(); open_info(); arl_setup(&arl, files[fileidx].path); + title_dirty = true; if (img.multi.cnt > 0 && img.multi.animate) set_timeout(animate, img.multi.frames[img.multi.sel].delay, true); @@ -451,7 +454,10 @@ void redraw(void) tns_render(&tns); } update_info(); - win_set_title(&win, false); + if (title_dirty) { + win_set_title(&win, false); + title_dirty = false; + } win_draw(&win); reset_timeout(redraw); reset_cursor(); -- cgit v1.2.3