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. * has any effect when the renderer is idle.
*/ */
if (term->window->frame_callback == NULL) { 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. */ /* First timeout - reset each time we receive input. */
#if PTMX_TIMING #if PTMX_TIMING
@ -217,6 +228,7 @@ fdm_ptmx(struct fdm *fdm, int fd, int events, void *data)
NULL); NULL);
term->delayed_render_timer.is_armed = true; term->delayed_render_timer.is_armed = true;
} }
}
} else } else
term->render.pending = true; term->render.pending = true;