From: Richard M. Stallman Date: Mon, 1 Jul 2002 08:04:04 +0000 (+0000) Subject: (timer_last_idleness_start_time): New variable. X-Git-Tag: ttn-vms-21-2-B4~14370 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3021d3a9d95e01fefac3baa10cae9db2d0b5c54f;p=emacs.git (timer_last_idleness_start_time): New variable. (timer_start_idle): Set that. (read_key_sequence): Use that to reset timer_idleness_start_time to previous value. --- diff --git a/src/keyboard.c b/src/keyboard.c index 99f060533ea..fa0415edc24 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -664,6 +664,11 @@ Lisp_Object Vglobal_disable_point_adjustment; static EMACS_TIME timer_idleness_start_time; +/* After Emacs stops being idle, this saves the last value + of timer_idleness_start_time from when it was idle. */ + +static EMACS_TIME timer_last_idleness_start_time; + /* Global variable declarations. */ @@ -4016,6 +4021,8 @@ timer_start_idle () EMACS_GET_TIME (timer_idleness_start_time); + timer_last_idleness_start_time = timer_idleness_start_time; + /* Mark all idle-time timers as once again candidates for running. */ for (timers = Vtimer_idle_list; CONSP (timers); timers = XCDR (timers)) { @@ -8368,6 +8375,13 @@ read_key_sequence (keybuf, bufsize, prompt, dont_downcase_last, keymap may have changed, so replay the sequence. */ if (BUFFERP (key)) { + EMACS_TIME initial_idleness_start_time + = timer_last_idleness_start_time; + + /* Resume idle state, using the same start-time as before. */ + timer_start_idle (); + timer_idleness_start_time = initial_idleness_start_time; + mock_input = t; /* Reset the current buffer from the selected window in case something changed the former and not the latter.