From 95d2ee0cc1f80e94d8420ad4d68a49527e4d1cc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sun, 12 Jan 2020 12:45:34 +0100 Subject: [PATCH] term: app sync updates: disable delayed rendering timers once only Disable the delayed rendering timers when enabling application synchronized updates, not every time we've received ptmx data. --- terminal.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/terminal.c b/terminal.c index af2d7109..10e8cf7c 100644 --- a/terminal.c +++ b/terminal.c @@ -186,15 +186,8 @@ fdm_ptmx(struct fdm *fdm, int fd, int events, void *data) * has any effect when the renderer is idle. */ if (term->window->frame_callback == NULL) { - if (term->render.application_synchronized_updates.enabled) { - timerfd_settime( - term->delayed_render_timer.lower_fd, 0, - &(struct itimerspec){{0}}, NULL); - timerfd_settime( - term->delayed_render_timer.upper_fd, 0, - &(struct itimerspec){{0}}, NULL); + if (term->render.application_synchronized_updates.enabled) term->render.refresh_needed = true; - } else { /* First timeout - reset each time we receive input. */ @@ -1827,6 +1820,14 @@ term_enable_application_synchronized_updates(struct terminal *term) { LOG_ERR("failed to arm timer for application synchronized updates"); } + + /* Disarm delayed rendering timers */ + timerfd_settime( + term->delayed_render_timer.lower_fd, 0, + &(struct itimerspec){{0}}, NULL); + timerfd_settime( + term->delayed_render_timer.upper_fd, 0, + &(struct itimerspec){{0}}, NULL); } void