changeset 14337:48287f1fc8a1 v8.1.0184

patch 8.1.0184: not easy to figure out the window layout commit https://github.com/vim/vim/commit/b6959a8e06cef6d2126b030b2f8acd49457a3582 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jul 14 21:41:44 2018 +0200 patch 8.1.0184: not easy to figure out the window layout Problem: Not easy to figure out the window layout. Solution: Add "wincol" and "winrow" to what getwininfo() returns.
author Christian Brabandt <cb@256bit.org>
date Sat, 14 Jul 2018 21:45:05 +0200
parents 20983d6293b4
children 5a9e863fe194
files runtime/doc/eval.txt src/evalfunc.c src/testdir/test_bufwintabinfo.vim src/version.c
diffstat 4 files changed, 25 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -4994,8 +4994,10 @@ getwininfo([{winid}])					*getwininfo()*
 			variables	a reference to the dictionary with
 					window-local variables
 			width		window width
+			wincol		leftmost screen column of the window
 			winid		|window-ID|
 			winnr		window number
+			winrow		topmost screen column of the window
 
 		To obtain all window-local variables use: >
 			gettabwinvar({tabnr}, {winnr}, '&')
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -5648,10 +5648,12 @@ get_win_info(win_T *wp, short tpnr, shor
     dict_add_number(dict, "winnr", winnr);
     dict_add_number(dict, "winid", wp->w_id);
     dict_add_number(dict, "height", wp->w_height);
+    dict_add_number(dict, "winrow", wp->w_winrow);
 #ifdef FEAT_MENU
     dict_add_number(dict, "winbar", wp->w_winbar_height);
 #endif
     dict_add_number(dict, "width", wp->w_width);
+    dict_add_number(dict, "wincol", wp->w_wincol);
     dict_add_number(dict, "bufnr", wp->w_buffer->b_fnum);
 
 #ifdef FEAT_TERMINAL
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -46,17 +46,34 @@ function Test_getbufwintabinfo()
     let w2_id = win_getid()
     tabnew | let w3_id = win_getid()
     new | let w4_id = win_getid()
-    new | let w5_id = win_getid()
+    vert new | let w5_id = win_getid()
     call setwinvar(0, 'signal', 'green')
     tabfirst
     let winlist = getwininfo()
     call assert_equal(5, len(winlist))
+    call assert_equal(winwidth(1), winlist[0].width)
+    call assert_equal(0, winlist[0].wincol)
+    call assert_equal(1, winlist[0].winrow)  " tabline adds one
+
     call assert_equal(winbufnr(2), winlist[1].bufnr)
     call assert_equal(winheight(2), winlist[1].height)
+    call assert_equal(0, winlist[1].wincol)
+    call assert_equal(winheight(1) + 2, winlist[1].winrow)
+
     call assert_equal(1, winlist[2].winnr)
+    call assert_equal(1, winlist[2].winrow)
+    call assert_equal(0, winlist[2].wincol)
+
+    call assert_equal(winlist[2].width + 1, winlist[3].wincol)
+    call assert_equal(0, winlist[4].wincol)
+
+    call assert_equal(1, winlist[0].tabnr)
+    call assert_equal(1, winlist[1].tabnr)
+    call assert_equal(2, winlist[2].tabnr)
     call assert_equal(2, winlist[3].tabnr)
+    call assert_equal(2, winlist[4].tabnr)
+
     call assert_equal('green', winlist[2].variables.signal)
-    call assert_equal(winwidth(1), winlist[0].width)
     call assert_equal(w4_id, winlist[3].winid)
     let winfo = getwininfo(w5_id)[0]
     call assert_equal(2, winfo.tabnr)
--- a/src/version.c
+++ b/src/version.c
@@ -790,6 +790,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    184,
+/**/
     183,
 /**/
     182,