double p = XFLOATINT (Vredisplay_preemption_period);
int sec, usec;
+ if (detect_input_pending_ignore_squeezables ())
+ {
+ paused_p = 1;
+ goto do_pause;
+ }
+
sec = (int) p;
usec = (p - sec) * 1000000;
#endif
}
+ do_pause:
/* Reset flags indicating that a window should be updated. */
set_window_update_flags (root_window, 0);
if (EMACS_TIME_NEG_P (dif))
{
EMACS_ADD_TIME (preemption_next_check, tm, preemption_period);
- detect_input_pending_ignore_squeezables ();
+ if (detect_input_pending_ignore_squeezables ())
+ break;
}
}
#else
if (EMACS_TIME_NEG_P (dif))
{
EMACS_ADD_TIME (preemption_next_check, tm, preemption_period);
- detect_input_pending_ignore_squeezables ();
+ if (detect_input_pending_ignore_squeezables ())
+ break;
}
}
#else