]> git.eshelyaron.com Git - emacs.git/commitdiff
(try_window_reusing_current_matrix)
authorGerd Moellmann <gerd@gnu.org>
Fri, 29 Dec 2000 21:08:50 +0000 (21:08 +0000)
committerGerd Moellmann <gerd@gnu.org>
Fri, 29 Dec 2000 21:08:50 +0000 (21:08 +0000)
<new start <= old start>:  Disable rows in the current matrix
which are below the window after scrolling.

src/ChangeLog
src/xdisp.c

index 8c8fb7d43d8e1bbba77a56f1fef02d0e6f919232..7d54241ad0a29ea3430464674af728d5f907bd6e 100644 (file)
@@ -1,5 +1,15 @@
 2000-12-29  Gerd Moellmann  <gerd@gnu.org>
 
+       * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
+       function.
+       (update_window) [GLYPH_DEBUG]: Call it.
+       (scrolling_window): Prevent including current rows which are below
+       what's displayed in the window.
+
+       * xdisp.c (try_window_reusing_current_matrix)
+       <new start <= old start>:  Disable rows in the current matrix
+       which are below the window after scrolling.
+       
        * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
        is zero.  It's not worth the complexity.
        (invisible_text_between_p): Put in #if 0 because unused.
index ae35c982e977b3163bd6f3f3626cfebcdf88c346..ed98ced48a28a41f34ff36b207ef227d34c2b8ff 100644 (file)
@@ -10185,10 +10185,10 @@ try_window_reusing_current_matrix (w)
                         MATRIX_ROW_VPOS (bottom_row, w->current_matrix),
                         nrows_scrolled);
          
-         /* Disable lines not reused.  */
+         /* Disable lines that must be updated.  */
          for (i = 0; i < it.vpos; ++i)
            (start_row + i)->enabled_p = 0;
-         
+
          /* Re-compute Y positions.  */
          min_y = WINDOW_DISPLAY_HEADER_LINE_HEIGHT (w);
          max_y = it.last_visible_y;
@@ -10213,6 +10213,11 @@ try_window_reusing_current_matrix (w)
              if (MATRIX_ROW_BOTTOM_Y (row) >= it.last_visible_y)
                break;
            }
+         
+         /* Disable lines in the current matrix which are now
+            below the window.  */
+         for (; row < bottom_row; ++row)
+           row->enabled_p = 0;
        }
 
       /* Update window_end_pos etc.; last_reused_text_row is the last