(wait_reading_process_output): Check for window changes caused by timers.
authorChong Yidong <cyd@stupidchicken.com>
Wed, 27 Feb 2008 15:07:14 +0000 (15:07 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Wed, 27 Feb 2008 15:07:14 +0000 (15:07 +0000)
Suggested by Johan Bockgård.

src/process.c

index f7abc79..184701e 100644 (file)
@@ -4376,13 +4376,15 @@ wait_reading_process_output (time_limit, microsecs, read_kbd, do_display,
            {
              int old_timers_run = timers_run;
              struct buffer *old_buffer = current_buffer;
+             Lisp_Object old_window = selected_window;
 
              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
+                 && (old_buffer != current_buffer
+                     || !EQ (old_window, selected_window))
                  && waiting_for_user_input_p == -1)
                record_asynch_buffer_change ();