# HG changeset patch # User Kim F. Storm # Date 1150503119 0 # Node ID 1b442e9d8373dbdc493b7dbf16e37a0c88c67652 # Parent 37aa828fafd2ccd6c91c540a19e9dad68ac0f415 (update_frame): Check for input pending on entry. (update_window, update_frame_1): Break loop if input is detected. diff -r 37aa828fafd2 -r 1b442e9d8373 src/dispnew.c --- a/src/dispnew.c Sat Jun 17 00:11:48 2006 +0000 +++ b/src/dispnew.c Sat Jun 17 00:11:59 2006 +0000 @@ -3849,6 +3849,12 @@ 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 @@ #endif } + do_pause: /* Reset flags indicating that a window should be updated. */ set_window_update_flags (root_window, 0); @@ -4262,7 +4269,8 @@ 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 @@ 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