summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2011-05-20 19:15:34 -0700
committerGlenn Morris <rgm@gnu.org>2011-05-20 19:15:34 -0700
commita57471f93507c55b55ee9e28c493ba78b46796e3 (patch)
tree60ef741228cbbf24e842413c753b16e3b90a4ca8 /src
parent637d46ca189f511ca1e5385700c168f6912568ea (diff)
parent4d8ade89573bba54d21c2cff9886420770e0ef0b (diff)
downloademacs-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/ChangeLog5
-rw-r--r--src/dispnew.c30
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)
{