diff options
author | NRK <nrk@disroot.org> | 2022-06-01 14:59:16 +0600 |
---|---|---|
committer | N-R-K <nrk@disroot.org> | 2022-06-02 08:09:51 +0000 |
commit | 810a9651a362992383081619ca63122f41f1cd0a (patch) | |
tree | bea298b12676f642a4801a5d6385a781f918a639 /main.c | |
parent | 364c3d6f019a26e68f2bfb9594d6bc599a947be2 (diff) |
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 <taaparthur@gmail.com>
Partially fixes: https://github.com/nsxiv/nsxiv/issues/258
Diffstat (limited to 'main.c')
-rw-r--r-- | main.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -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(); |