summaryrefslogtreecommitdiffstats
path: root/src/move.c
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2008-11-15 15:06:17 +0000
committerBram Moolenaar <Bram@vim.org>2008-11-15 15:06:17 +0000
commitd4153d4a62172ecb451020e9b90b3fe5b0e7e8be (patch)
treea409d964f846c19fe64a3a39196b17ecfe80e6ba /src/move.c
parent701f7afcdf5f510090116a6a6fa91ca479c88e06 (diff)
updated for version 7.2-042v7.2.042
Diffstat (limited to 'src/move.c')
-rw-r--r--src/move.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/move.c b/src/move.c
index c547d9b0e9..17b16a1e89 100644
--- a/src/move.c
+++ b/src/move.c
@@ -280,18 +280,20 @@ update_topline()
if (curwin->w_botline <= curbuf->b_ml.ml_line_count)
{
- if (curwin->w_cursor.lnum < curwin->w_botline
- && ((long)curwin->w_cursor.lnum
+ if (curwin->w_cursor.lnum < curwin->w_botline)
+ {
+ if (((long)curwin->w_cursor.lnum
>= (long)curwin->w_botline - p_so
#ifdef FEAT_FOLDING
|| hasAnyFolding(curwin)
#endif
))
- {
+ {
lineoff_T loff;
- /* Cursor is above botline, check if there are 'scrolloff'
- * window lines below the cursor. If not, need to scroll. */
+ /* Cursor is (a few lines) above botline, check if there are
+ * 'scrolloff' window lines below the cursor. If not, need to
+ * scroll. */
n = curwin->w_empty_rows;
loff.lnum = curwin->w_cursor.lnum;
#ifdef FEAT_FOLDING
@@ -317,6 +319,10 @@ update_topline()
if (n >= p_so)
/* sufficient context, no need to scroll */
check_botline = FALSE;
+ }
+ else
+ /* sufficient context, no need to scroll */
+ check_botline = FALSE;
}
if (check_botline)
{
@@ -509,6 +515,9 @@ set_topline(wp, lnum)
/* Approximate the value of w_botline */
wp->w_botline += lnum - wp->w_topline;
wp->w_topline = lnum;
+#ifdef FEAT_AUTOCMD
+ wp->w_topline_was_set = TRUE;
+#endif
#ifdef FEAT_DIFF
wp->w_topfill = 0;
#endif