diff options
author | Glenn Morris <rgm@gnu.org> | 2011-05-20 19:15:34 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2011-05-20 19:15:34 -0700 |
commit | a57471f93507c55b55ee9e28c493ba78b46796e3 (patch) | |
tree | 60ef741228cbbf24e842413c753b16e3b90a4ca8 /src | |
parent | 637d46ca189f511ca1e5385700c168f6912568ea (diff) | |
parent | 4d8ade89573bba54d21c2cff9886420770e0ef0b (diff) | |
download | emacs-a57471f93507c55b55ee9e28c493ba78b46796e3.tar.gz |
Merge from emacs-23; up to 2010-06-11T18:51:00Z!juri@jurta.org.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 5 | ||||
-rw-r--r-- | src/dispnew.c | 30 |
2 files changed, 23 insertions, 12 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index feed5157c8a..bcc79800aaf 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2011-05-21 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> + + * dispnew.c (scrolling_window): Don't exclude the case that the + last enabled row in the desired matrix touches the bottom boundary. + 2011-05-21 Glenn Morris <rgm@gnu.org> * Makefile.in ($(etc)/DOC): Make second command line even shorter. diff --git a/src/dispnew.c b/src/dispnew.c index 0457d650b3a..41f486baf16 100644 --- a/src/dispnew.c +++ b/src/dispnew.c @@ -4330,23 +4330,29 @@ scrolling_window (struct window *w, int header_line_p) first_old = first_new = i; - /* Set last_new to the index + 1 of the last enabled row in the - desired matrix. */ + /* Set last_new to the index + 1 of the row that reaches the + bottom boundary in the desired matrix. Give up if we find a + disabled row before we reach the bottom boundary. */ i = first_new + 1; - while (i < desired_matrix->nrows - 1 - && MATRIX_ROW (desired_matrix, i)->enabled_p - && MATRIX_ROW_BOTTOM_Y (MATRIX_ROW (desired_matrix, i)) <= yb) - ++i; + while (i < desired_matrix->nrows - 1) + { + int bottom; - if (!MATRIX_ROW (desired_matrix, i)->enabled_p) - return 0; + if (!MATRIX_ROW (desired_matrix, i)->enabled_p) + return 0; + bottom = MATRIX_ROW_BOTTOM_Y (MATRIX_ROW (desired_matrix, i)); + if (bottom <= yb) + ++i; + if (bottom >= yb) + break; + } last_new = i; - /* Set last_old to the index + 1 of the last enabled row in the - current matrix. We don't look at the enabled flag here because - we plan to reuse part of the display even if other parts are - disabled. */ + /* Set last_old to the index + 1 of the row that reaches the bottom + boundary in the current matrix. We don't look at the enabled + flag here because we plan to reuse part of the display even if + other parts are disabled. */ i = first_old + 1; while (i < current_matrix->nrows - 1) { |