comparison src/process.c @ 87689:f0dfa6a512bb

Chong Yidong <cyd at stupidchicken.com> (wait_reading_process_output): Check for window changes caused by timers.
author Glenn Morris <rgm@gnu.org>
date Thu, 10 Jan 2008 04:08:05 +0000
parents 107ccd98fa12
children 91da483b3fa5
comparison
equal deleted inserted replaced
87688:d896cd0ecab5 87689:f0dfa6a512bb
4716 4716
4717 if (read_kbd != 0) 4717 if (read_kbd != 0)
4718 { 4718 {
4719 int old_timers_run = timers_run; 4719 int old_timers_run = timers_run;
4720 struct buffer *old_buffer = current_buffer; 4720 struct buffer *old_buffer = current_buffer;
4721 Lisp_Object old_window = selected_window;
4721 int leave = 0; 4722 int leave = 0;
4722 4723
4723 if (detect_input_pending_run_timers (do_display)) 4724 if (detect_input_pending_run_timers (do_display))
4724 { 4725 {
4725 swallow_events (do_display); 4726 swallow_events (do_display);
4729 4730
4730 /* If a timer has run, this might have changed buffers 4731 /* If a timer has run, this might have changed buffers
4731 an alike. Make read_key_sequence aware of that. */ 4732 an alike. Make read_key_sequence aware of that. */
4732 if (timers_run != old_timers_run 4733 if (timers_run != old_timers_run
4733 && waiting_for_user_input_p == -1 4734 && waiting_for_user_input_p == -1
4734 && old_buffer != current_buffer) 4735 && (old_buffer != current_buffer
4736 || !EQ (old_window, selected_window)))
4735 record_asynch_buffer_change (); 4737 record_asynch_buffer_change ();
4736 4738
4737 if (leave) 4739 if (leave)
4738 break; 4740 break;
4739 } 4741 }