]> granicus.if.org Git - vim/commitdiff
patch 8.1.0184: not easy to figure out the window layout v8.1.0184
authorBram Moolenaar <Bram@vim.org>
Sat, 14 Jul 2018 19:41:44 +0000 (21:41 +0200)
committerBram Moolenaar <Bram@vim.org>
Sat, 14 Jul 2018 19:41:44 +0000 (21:41 +0200)
Problem:    Not easy to figure out the window layout.
Solution:   Add "wincol" and "winrow" to what getwininfo() returns.

runtime/doc/eval.txt
src/evalfunc.c
src/testdir/test_bufwintabinfo.vim
src/version.c

index bd538d52332904e4289810f1886a5661dc14fab3..9394ece21fc12d1cc9a90450c4d129c41ee7b87d 100644 (file)
@@ -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}, '&')
index 5775c78db90813bb4aeb52a05f1ec859b3a28d95..13c60b9930a95f2cb80b22502c438663977934b9 100644 (file)
@@ -5648,10 +5648,12 @@ get_win_info(win_T *wp, short tpnr, short winnr)
     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
index 31b46500259c6bfe6fec806935f7dda8cd4865ce..bcf3c52ed0f2b05a56f1598e37ba6ddbf4320e60 100644 (file)
@@ -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)
index 0cda7a5ae5421b8844ea32ddbdc1cfe0b4d3f7bd..a1535f6822d209882cef6fb8ac54dfe4b22a01f7 100644 (file)
@@ -789,6 +789,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    184,
 /**/
     183,
 /**/