emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/keyboard.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/keyboard.c,v
Date: Tue, 15 Aug 2006 17:39:21 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      06/08/15 17:39:21

Index: keyboard.c
===================================================================
RCS file: /cvsroot/emacs/emacs/src/keyboard.c,v
retrieving revision 1.867
retrieving revision 1.868
diff -u -b -r1.867 -r1.868
--- keyboard.c  14 Aug 2006 18:32:23 -0000      1.867
+++ keyboard.c  15 Aug 2006 17:39:21 -0000      1.868
@@ -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'.  */
+  /* 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_resume_idle ();
-  else
+  if (!end_time)
     timer_start_idle ();
 
   /* If in middle of key sequence and minibuffer not active,
@@ -2756,6 +2754,7 @@
       c = read_char_x_menu_prompt (nmaps, maps, prev_event, used_mouse_menu);
 
       /* Now that we have read an event, Emacs is not 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,6 +2938,7 @@
 
  non_reread:
 
+  if (!end_time)
   timer_stop_idle ();
   RESUME_POLLING;
 
@@ -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,6 +3179,7 @@
       show_help_echo (help, window, object, position, 0);
 
       /* We stopped being idle for this event; undo that.  */
+      if (!end_time)
       timer_resume_idle ();
       goto retry;
     }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]