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, 17 Mar 2002 23:43:36 -0500

Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.739 emacs/src/xdisp.c:1.740
*** emacs/src/xdisp.c:1.739     Sat Mar 16 02:05:59 2002
--- emacs/src/xdisp.c   Sun Mar 17 23:43:36 2002
***************
*** 455,460 ****
--- 455,464 ----
  
  int windows_or_buffers_changed;
  
+ /* Nonzero means a frame's cursor type has been changed.  */
+ 
+ int cursor_type_changed;
+ 
  /* Nonzero after display_mode_line if %l was used and it displayed a
     line number.  */
  
***************
*** 7022,7027 ****
--- 7026,7032 ----
    if (frame_garbaged)
      {
        Lisp_Object tail, frame;
+       int changed_count = 0;
        
        FOR_EACH_FRAME (tail, frame)
        {
***************
*** 7032,7044 ****
              if (f->resized_p)
                Fredraw_frame (frame);
              clear_current_matrices (f);
              f->garbaged = 0;
              f->resized_p = 0;
            }
        }
  
        frame_garbaged = 0;
!       ++windows_or_buffers_changed;
      }
  }
  
--- 7037,7051 ----
              if (f->resized_p)
                Fredraw_frame (frame);
              clear_current_matrices (f);
+             changed_count++;
              f->garbaged = 0;
              f->resized_p = 0;
            }
        }
  
        frame_garbaged = 0;
!       if (changed_count)
!       ++windows_or_buffers_changed;
      }
  }
  
***************
*** 8575,8581 ****
    /* The variable buffer_shared is set in redisplay_window and
       indicates that we redisplay a buffer in different windows.  See
       there.  */
!   consider_all_windows_p = update_mode_lines || buffer_shared > 1;
  
    /* If specs for an arrow have changed, do thorough redisplay
       to ensure we remove any arrow that should no longer exist.  */
--- 8582,8589 ----
    /* The variable buffer_shared is set in redisplay_window and
       indicates that we redisplay a buffer in different windows.  See
       there.  */
!   consider_all_windows_p = (update_mode_lines || buffer_shared > 1
!                           || cursor_type_changed);
  
    /* If specs for an arrow have changed, do thorough redisplay
       to ensure we remove any arrow that should no longer exist.  */
***************
*** 9052,9057 ****
--- 9060,9066 ----
  
        update_mode_lines = 0;
        windows_or_buffers_changed = 0;
+       cursor_type_changed = 0;
      }
  
    /* Start SIGIO interrupts coming again.  Having them off during the
***************
*** 9860,9865 ****
--- 9869,9875 ----
         cases.  */
        && !update_mode_lines
        && !windows_or_buffers_changed
+       && !cursor_type_changed
        /* Can't use this case if highlighting a region.  When a 
           region exists, cursor movement has to do more than just
           set the cursor.  */
***************
*** 10501,10506 ****
--- 10511,10517 ----
    /* Redisplay the window.  */
    if (!current_matrix_up_to_date_p
        || windows_or_buffers_changed
+       || cursor_type_changed
        /* Don't use try_window_reusing_current_matrix in this case
         because it can have changed the buffer.  */
        || !NILP (Vwindow_scroll_functions)
***************
*** 10793,10799 ****
        !FRAME_WINDOW_P (f)
        /* Don't try to reuse the display if windows have been split
         or such.  */
!       || windows_or_buffers_changed)
      return 0;
  
    /* Can't do this if region may have changed.  */
--- 10804,10811 ----
        !FRAME_WINDOW_P (f)
        /* Don't try to reuse the display if windows have been split
         or such.  */
!       || windows_or_buffers_changed
!       || cursor_type_changed)
      return 0;
  
    /* Can't do this if region may have changed.  */
***************
*** 11465,11471 ****
      GIVE_UP (1);
    
    /* This flag is used to prevent redisplay optimizations.  */
!   if (windows_or_buffers_changed)
      GIVE_UP (2);
    
    /* Verify that narrowing has not changed.  This flag is also set to prevent
--- 11477,11483 ----
      GIVE_UP (1);
    
    /* This flag is used to prevent redisplay optimizations.  */
!   if (windows_or_buffers_changed || cursor_type_changed)
      GIVE_UP (2);
    
    /* Verify that narrowing has not changed.  This flag is also set to prevent



reply via email to

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