summaryrefslogtreecommitdiff
path: root/src/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/process.c b/src/process.c
index 15fc26c6634..20edc9d85aa 100644
--- a/src/process.c
+++ b/src/process.c
@@ -2453,12 +2453,14 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
do
{
int old_timers_run = timers_run;
+ struct buffer *old_buffer = current_buffer;
timer_delay = timer_check (1);
/* If a timer has run, this might have changed buffers
an alike. Make read_key_sequence aware of that. */
if (timers_run != old_timers_run
+ && old_buffer != current_buffer
&& waiting_for_user_input_p == -1)
record_asynch_buffer_change ();
@@ -2678,6 +2680,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
if (XINT (read_kbd) != 0)
{
int old_timers_run = timers_run;
+ struct buffer *old_buffer = current_buffer;
int leave = 0;
if (detect_input_pending_run_timers (do_display))
@@ -2690,7 +2693,8 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
/* If a timer has run, this might have changed buffers
an alike. Make read_key_sequence aware of that. */
if (timers_run != old_timers_run
- && waiting_for_user_input_p == -1)
+ && waiting_for_user_input_p == -1
+ && old_buffer != current_buffer)
record_asynch_buffer_change ();
if (leave)