(update_frame): Check for input pending on entry.
(update_window, update_frame_1): Break loop if input is detected.
This commit is contained in:
parent
a3efc408be
commit
993d4ab6ee
1 changed files with 11 additions and 2 deletions
|
@ -3849,6 +3849,12 @@ update_frame (f, force_p, inhibit_hairy_id_p)
|
|||
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;
|
||||
|
||||
|
@ -3936,6 +3942,7 @@ update_frame (f, force_p, inhibit_hairy_id_p)
|
|||
#endif
|
||||
}
|
||||
|
||||
do_pause:
|
||||
/* Reset flags indicating that a window should be updated. */
|
||||
set_window_update_flags (root_window, 0);
|
||||
|
||||
|
@ -4262,7 +4269,8 @@ update_window (w, force_p)
|
|||
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
|
||||
|
@ -5288,7 +5296,8 @@ update_frame_1 (f, force_p, inhibit_id_p)
|
|||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue