]> git.eshelyaron.com Git - emacs.git/commitdiff
(read_char) <non_reread>: Record the previous idle
authorGerd Moellmann <gerd@gnu.org>
Tue, 26 Jun 2001 12:31:30 +0000 (12:31 +0000)
committerGerd Moellmann <gerd@gnu.org>
Tue, 26 Jun 2001 12:31:30 +0000 (12:31 +0000)
start time before calling timer_stop_idle.
(read_char) <reread_first>: After processing a help-echo event,
restore the previous idle start time.

src/ChangeLog
src/keyboard.c

index 6e51be5b1c76cbb449fdf33527a6514d36d4bbae..46986d2fb5a618bb595b5545a015eab2a985b2c7 100644 (file)
@@ -1,5 +1,10 @@
 2001-06-26  Gerd Moellmann  <gerd@gnu.org>
 
+       * keyboard.c (read_char) <non_reread>: Record the previous idle
+       start time before calling timer_stop_idle.
+       (read_char) <reread_first>: After processing a help-echo event,
+       restore the previous idle start time.
+
        * xdisp.c (handle_invisible_prop): Deal with overlay strings at
        the start of invisible text.
        (setup_for_ellipsis): New function.
index 18c1f3e1e3a1e1ccaba81d95dfe8f038a4d3035f..927e986b2684438e6c9a0df90639a28604bb6aba 100644 (file)
@@ -644,6 +644,10 @@ Lisp_Object Vdisable_point_adjustment;
 
 Lisp_Object Vglobal_disable_point_adjustment;
 
+/* The time when Emacs started being idle.  */
+
+static EMACS_TIME timer_idleness_start_time;
+
 \f
 /* Global variable declarations.  */
 
@@ -2095,6 +2099,7 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
   volatile Lisp_Object also_record;
   volatile int reread;
   struct gcpro gcpro1, gcpro2;
+  EMACS_TIME last_idle_start;
 
   also_record = Qnil;
 
@@ -2588,6 +2593,9 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
 
  non_reread:
 
+  /* Record the last idle start time so that we can reset it
+     should the next event read be a help-echo.  */
+  last_idle_start = timer_idleness_start_time;
   timer_stop_idle ();
   start_polling ();
 
@@ -2804,6 +2812,9 @@ read_char (commandflag, nmaps, maps, prev_event, used_mouse_menu)
       object = Fnth (make_number (4), c);
       position = Fnth (make_number (5), c);
       show_help_echo (help, window, object, position, 0);
+
+      /* We stopped being idle for this event; undo that.  */
+      timer_idleness_start_time = last_idle_start;
       goto retry;
     }
   
@@ -3824,8 +3835,6 @@ swallow_events (do_display)
     redisplay_preserve_echo_area (7);
 }
 \f
-static EMACS_TIME timer_idleness_start_time;
-
 /* Record the start of when Emacs is idle,
    for the sake of running idle-time timers.  */