1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-25 15:00:45 -08:00

(timer_check): After a timer runs, ensure that the selected window's

buffer is current.
This commit is contained in:
Chong Yidong 2008-11-30 17:33:36 +00:00
parent 379c17e744
commit dd649c4915

View file

@ -4584,12 +4584,8 @@ timer_check (do_it_now)
{
int count = SPECPDL_INDEX ();
Lisp_Object old_deactivate_mark = Vdeactivate_mark;
struct buffer *b;
#if 0 /* This shouldn't be necessary anymore. --lorentey */
/* On unbind_to, resume allowing input from any kboard, if that
was true before. */
record_single_kboard_state ();
#endif
/* Mark the timer as triggered to prevent problems if the lisp
code fails to reschedule it right. */
vector[0] = Qt;
@ -4601,6 +4597,13 @@ timer_check (do_it_now)
timers_run++;
unbind_to (count, Qnil);
/* We must ensure that the current buffer is the same as
the selected window's buffer, because the timers may
have made another buffer current (bug#1458). */
b = XBUFFER (XWINDOW (selected_window)->buffer);
if (b != current_buffer)
set_buffer_internal (b);
/* Since we have handled the event,
we don't need to tell the caller to wake up and do it. */
}