patch 9.1.1513: resizing Vim window causes unexpected internal window width
Problem: resizing Vim window causes unexpected internal window width
(chdiza, after v9.1.1465)
Solution: move the column calculation around (Hirohito Higashi)
fixes: #17657
fixes: #17595
closes: #17668
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index 3dc4960..4d001c2 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -5479,4 +5479,29 @@
%bw!
endfunc
+func Test_VimResized_and_window_width_not_equalized()
+ CheckRunVimInTerminal
+
+ let lines =<< trim END
+ let g:vim_resized = 0
+ autocmd VimResized * let g:vim_resized = 1
+ 10vsplit
+ END
+ call writefile(lines, 'XTest_VimResize', 'D')
+ let buf = RunVimInTerminal('-S XTest_VimResize', {'rows': 10, 'cols': 30})
+
+ " redraw now to avoid a redraw after the :echo command
+ call term_sendkeys(buf, ":redraw!\<CR>")
+ call TermWait(buf)
+
+ call term_sendkeys(buf, ":set columns=40\<CR>")
+ call term_sendkeys(buf, ":echo 'VimResized:' g:vim_resized\<CR>")
+ call WaitForAssert({-> assert_match('^VimResized: 1$', term_getline(buf, 10))}, 1000)
+ call term_sendkeys(buf, ":let window_width = getwininfo(win_getid())[0].width\<CR>")
+ call term_sendkeys(buf, ":echo 'window_width:' window_width\<CR>")
+ call WaitForAssert({-> assert_match('^window_width: 10$', term_getline(buf, 10))}, 1000)
+
+ call StopVimInTerminal(buf)
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab