diff src/testdir/test_window_cmd.vim @ 16690:4e3c4e8e465c v8.1.1347

patch 8.1.1347: fractional scroll position not restored after closing window commit https://github.com/vim/vim/commit/bd2d68c2f42c7689f681aeaf82606d17f8a0312f Author: Bram Moolenaar <Bram@vim.org> Date: Sat May 18 15:36:11 2019 +0200 patch 8.1.1347: fractional scroll position not restored after closing window Problem: Fractional scroll position not restored after closing window. Solution: Do restore fraction if topline is not one.
author Bram Moolenaar <Bram@vim.org>
date Sat, 18 May 2019 15:45:05 +0200
parents 06fd0eaada01
children cb71b5e9e5d9
line wrap: on
line diff
--- a/src/testdir/test_window_cmd.vim
+++ b/src/testdir/test_window_cmd.vim
@@ -745,16 +745,8 @@ endfunc
 
 func Test_split_noscroll()
   let so_save = &so
-  new
-  only
-
-  " Make sure windows can hold all content after split.
-  for i in range(1, 20)
-    wincmd +
-    redraw!
-  endfor
-
-  call setline (1, range(1, 8))
+  enew
+  call setline(1, range(1, 8))
   normal 100%
   split
 
@@ -769,12 +761,20 @@ func Test_split_noscroll()
   call assert_equal(1, info1.topline)
   call assert_equal(1, info2.topline)
 
-  " Restore original state.
-  for i in range(1, 20)
-    wincmd -
-    redraw!
-  endfor
+  " window that fits all lines by itself, but not when split: closing other
+  " window should restore fraction.
   only!
+  call setline(1, range(1, &lines - 10))
+  exe &lines / 4
+  let winid1 = win_getid()
+  let info1 = getwininfo(winid1)[0]
+  call assert_equal(1, info1.topline)
+  new
+  redraw
+  close
+  let info1 = getwininfo(winid1)[0]
+  call assert_equal(1, info1.topline)
+
   bwipe!
   let &so = so_save
 endfunc