]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/keyboard.c (swallow_events): Don't redisplay if there's input pending.
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 17 Dec 2014 22:08:07 +0000 (17:08 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 17 Dec 2014 22:08:07 +0000 (17:08 -0500)
src/ChangeLog
src/dispnew.c
src/keyboard.c
src/process.c

index 3854803d843fe9111db7712f32a67f9cd3cce770..01653de22eda9193c737181d187056c77e56bec3 100644 (file)
@@ -1,3 +1,7 @@
+2014-12-17  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * keyboard.c (swallow_events): Don't redisplay if there's input pending.
+
 2014-12-17  Ulf Jasper  <ulf.jasper@web.de>
 
        * image.c (svg_load): Watch out for nil value of current buffer's
index a68901acd577adaeabbd32222196749b4d0fe59c..212caa8b7d6c866edcefbf4a3c3ca3cc42c3d419 100644 (file)
@@ -5785,7 +5785,7 @@ immediately by pending input.  */)
 {
   ptrdiff_t count;
 
-  swallow_events (1);
+  swallow_events (true);
   if ((detect_input_pending_run_timers (1)
        && NILP (force) && !redisplay_dont_pause)
       || !NILP (Vexecuting_kbd_macro))
index beb34592d1cc3b4bb8f9a51bd246ee5e5eb2baec..9e12f590c57912028d37980c8547681e725f27d1 100644 (file)
@@ -2582,7 +2582,7 @@ read_char (int commandflag, Lisp_Object map,
           user-visible, such as X selection_request events.  */
       if (input_pending
          || detect_input_pending_run_timers (0))
-       swallow_events (0);             /* May clear input_pending.  */
+       swallow_events (false);         /* May clear input_pending.  */
 
       /* Redisplay if no pending input.  */
       while (!input_pending)
@@ -2598,7 +2598,7 @@ read_char (int commandflag, Lisp_Object map,
 
          /* Input arrived and pre-empted redisplay.
             Process any events which are not user-visible.  */
-         swallow_events (0);
+         swallow_events (false);
          /* If that cleared input_pending, try again to redisplay.  */
        }
 
@@ -4370,7 +4370,7 @@ swallow_events (bool do_display)
   old_timers_run = timers_run;
   get_input_pending (READABLE_EVENTS_DO_TIMERS_NOW);
 
-  if (timers_run != old_timers_run && do_display)
+  if (!input_pending && timers_run != old_timers_run && do_display)
     redisplay_preserve_echo_area (7);
 }
 \f
index e59ca5863d56bd56b1f68a73f036603a5dfc7a86..c58ae3efd28a770d3a4cc078871593a94ce13f3a 100644 (file)
@@ -4473,7 +4473,7 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
          && ! EQ (wait_proc->status, Qrun)
          && ! EQ (wait_proc->status, Qconnect))
        {
-         bool read_some_bytes = 0;
+         bool read_some_bytes = false;
 
          clear_waiting_for_input ();
          XSETPROCESS (proc, wait_proc);
@@ -4689,13 +4689,13 @@ wait_reading_process_output (intmax_t time_limit, int nsecs, int read_kbd,
          unsigned old_timers_run = timers_run;
          struct buffer *old_buffer = current_buffer;
          Lisp_Object old_window = selected_window;
-         bool leave = 0;
+         bool leave = false;
 
          if (detect_input_pending_run_timers (do_display))
            {
              swallow_events (do_display);
              if (detect_input_pending_run_timers (do_display))
-               leave = 1;
+               leave = true;
            }
 
          /* If a timer has run, this might have changed buffers