Mercurial > emacs
changeset 72402:949ddf473439
* keyboard.c (read_char): Don't change idle timer state at all if
end_time is supplied.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 15 Aug 2006 17:39:21 +0000 |
parents | 9cad9282afd8 |
children | fe2a38afd46e |
files | src/ChangeLog src/keyboard.c |
diffstat | 2 files changed, 18 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog Tue Aug 15 11:59:09 2006 +0000 +++ b/src/ChangeLog Tue Aug 15 17:39:21 2006 +0000 @@ -1,3 +1,8 @@ +2006-08-15 Chong Yidong <cyd@stupidchicken.com> + + * keyboard.c (read_char): Don't change idle timer state at all if + end_time is supplied. + 2006-08-15 Kenichi Handa <handa@m17n.org> * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New arg RET. If SRC
--- a/src/keyboard.c Tue Aug 15 11:59:09 2006 +0000 +++ b/src/keyboard.c Tue Aug 15 17:39:21 2006 +0000 @@ -2679,13 +2679,11 @@ goto non_reread; } - /* Start idle timers. If a time limit is supplied, we don't reset - idle timers. This avoids an infinite recursion in case an idle - timer calls `sit-for'. */ - - if (end_time) - timer_resume_idle (); - else + /* Start idle timers if no time limit is supplied. We don't do it + if a time limit is supplied to avoid an infinite recursion in the + situation where an idle timer calls `sit-for'. */ + + if (!end_time) timer_start_idle (); /* If in middle of key sequence and minibuffer not active, @@ -2756,7 +2754,8 @@ c = read_char_x_menu_prompt (nmaps, maps, prev_event, used_mouse_menu); /* Now that we have read an event, Emacs is not idle. */ - timer_stop_idle (); + if (!end_time) + timer_stop_idle (); goto exit; } @@ -2886,9 +2885,7 @@ /* Actually read a character, waiting if necessary. */ save_getcjmp (save_jump); restore_getcjmp (local_getcjmp); - if (end_time) - timer_resume_idle (); - else + if (!end_time) timer_start_idle (); c = kbd_buffer_get_event (&kb, used_mouse_menu, end_time); restore_getcjmp (save_jump); @@ -2941,7 +2938,8 @@ non_reread: - timer_stop_idle (); + if (!end_time) + timer_stop_idle (); RESUME_POLLING; if (NILP (c)) @@ -2975,7 +2973,7 @@ last_input_char = c; Fcommand_execute (tem, Qnil, Fvector (1, &last_input_char), Qt); - if (CONSP (c) && EQ (XCAR (c), Qselect_window)) + if (CONSP (c) && EQ (XCAR (c), Qselect_window) && !end_time) /* We stopped being idle for this event; undo that. This prevents automatic window selection (under mouse_autoselect_window from acting as a real input event, for @@ -3181,7 +3179,8 @@ show_help_echo (help, window, object, position, 0); /* We stopped being idle for this event; undo that. */ - timer_resume_idle (); + if (!end_time) + timer_resume_idle (); goto retry; }