emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/xdisp.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/xdisp.c
Date: Sun, 29 Sep 2002 13:47:51 -0400

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.786 emacs/src/xdisp.c:1.787
*** emacs/src/xdisp.c:1.786     Wed Sep 11 23:26:01 2002
--- emacs/src/xdisp.c   Sun Sep 29 13:44:16 2002
***************
*** 8471,8476 ****
--- 8471,8484 ----
        b->clip_changed = 1;
      }
  }
+ 
+ #define STOP_POLLING                                  \
+ do { if (! polling_stopped_here) stop_polling ();     \
+        polling_stopped_here = 1; } while (0)
+ 
+ #define RESUME_POLLING                                        \
+ do { if (polling_stopped_here) start_polling ();      \
+        polling_stopped_here = 0; } while (0)
  
  
  /* If PRESERVE_ECHO_AREA is nonzero, it means this redisplay is not in
***************
*** 8491,8496 ****
--- 8499,8505 ----
    int number_of_visible_frames;
    int count;
    struct frame *sf = SELECTED_FRAME ();
+   int polling_stopped_here = 0;
  
    /* Non-zero means redisplay has to consider all windows on all
       frames.  Zero means, only selected_window is considered.  */
***************
*** 8979,8985 ****
                     error.  */
                  if (interrupt_input)
                    unrequest_sigio ();
!                 stop_polling ();
  
                  /* Update the display.  */
                  set_window_update_flags (XWINDOW (f->root_window), 1);
--- 8988,8994 ----
                     error.  */
                  if (interrupt_input)
                    unrequest_sigio ();
!                 STOP_POLLING;
  
                  /* Update the display.  */
                  set_window_update_flags (XWINDOW (f->root_window), 1);
***************
*** 9035,9041 ****
         which can cause an apparent I/O error.  */
        if (interrupt_input)
        unrequest_sigio ();
!       stop_polling ();
  
        if (FRAME_VISIBLE_P (sf) && !FRAME_OBSCURED_P (sf))
        {
--- 9044,9050 ----
         which can cause an apparent I/O error.  */
        if (interrupt_input)
        unrequest_sigio ();
!       STOP_POLLING;
  
        if (FRAME_VISIBLE_P (sf) && !FRAME_OBSCURED_P (sf))
        {
***************
*** 9111,9117 ****
       But it is much hairier to try to do anything about that.  */
    if (interrupt_input)
      request_sigio ();
!   start_polling ();
  
    /* If a frame has become visible which was not before, redisplay
       again, so that we display it.  Expose events for such a frame
--- 9120,9126 ----
       But it is much hairier to try to do anything about that.  */
    if (interrupt_input)
      request_sigio ();
!   RESUME_POLLING;
  
    /* If a frame has become visible which was not before, redisplay
       again, so that we display it.  Expose events for such a frame
***************
*** 9152,9157 ****
--- 9161,9167 ----
  
   end_of_redisplay:
    unbind_to (count, Qnil);
+   RESUME_POLLING;
  }
  
  




reply via email to

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