term: ptmx: cancel, and don't re-arm, delay timers when refresh has been disabled

This commit is contained in:
Daniel Eklöf 2020-01-12 12:23:29 +01:00
parent 7b27fa857f
commit 84f836c0c8
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -186,6 +186,17 @@ 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.refresh_prohibited) {
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);
term->render.refresh_needed = true;
}
else {
/* First timeout - reset each time we receive input. */
#if PTMX_TIMING
@ -217,6 +228,7 @@ fdm_ptmx(struct fdm *fdm, int fd, int events, void *data)
NULL);
term->delayed_render_timer.is_armed = true;
}
}
} else
term->render.pending = true;