Commit: patch 9.1.1944: getwininfo() does not return if statusline is visible

2 views
Skip to first unread message

Christian Brabandt

unread,
Dec 2, 2025, 3:00:46 PM (15 hours ago) Dec 2
to vim...@googlegroups.com
patch 9.1.1944: getwininfo() does not return if statusline is visible

Commit: https://github.com/vim/vim/commit/a04ab5f04c1a9e794ed45ff5f8f7e1f9c5e1a535
Author: Hirohito Higashi <h.eas...@gmail.com>
Date: Tue Dec 2 19:58:01 2025 +0000

patch 9.1.1944: getwininfo() does not return if statusline is visible

Problem: gewininfo() does not return if statusline is visible
Solution: Add status_height to the dict items returned by
getwininfo() (Hirohito Higashi)

closes: #18841

Signed-off-by: Hirohito Higashi <h.eas...@gmail.com>
Signed-off-by: Christian Brabandt <c...@256bit.org>

diff --git a/runtime/doc/builtin.txt b/runtime/doc/builtin.txt
index 90f873e1d..0b5215d7e 100644
--- a/runtime/doc/builtin.txt
+++ b/runtime/doc/builtin.txt
@@ -1,4 +1,4 @@
-*builtin.txt* For Vim version 9.1. Last change: 2025 Nov 28
+*builtin.txt* For Vim version 9.1. Last change: 2025 Dec 02


VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5343,9 +5343,13 @@ getwininfo([{winid}]) *getwininfo()*
{only with the +quickfix feature}
quickfix 1 if quickfix or location list window
{only with the +quickfix feature}
+ status_height status lines height (0 or 1)
+ tabnr tab page number
terminal 1 if a terminal window
{only with the +terminal feature}
- tabnr tab page number
+ textoff number of columns occupied by any
+ 'foldcolumn', 'signcolumn' and line
+ number in front of the text
topline first displayed buffer line
variables a reference to the dictionary with
window-local variables
@@ -5354,9 +5358,6 @@ getwininfo([{winid}]) *getwininfo()*
otherwise
wincol leftmost screen column of the window;
"col" from |win_screenpos()|
- textoff number of columns occupied by any
- 'foldcolumn', 'signcolumn' and line
- number in front of the text
winid |window-ID|
winnr window number
winrow topmost screen line of the window;
diff --git a/src/evalwindow.c b/src/evalwindow.c
index 05c3d1d9b..9a4efaa8c 100644
--- a/src/evalwindow.c
+++ b/src/evalwindow.c
@@ -416,6 +416,7 @@ 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, "status_height", wp->w_status_height);
dict_add_number(dict, "winrow", wp->w_winrow + 1);
dict_add_number(dict, "topline", wp->w_topline);
dict_add_number(dict, "botline", wp->w_botline - 1);
diff --git a/src/testdir/test_bufwintabinfo.vim b/src/testdir/test_bufwintabinfo.vim
index f7318ff55..96dc06023 100644
--- a/src/testdir/test_bufwintabinfo.vim
+++ b/src/testdir/test_bufwintabinfo.vim
@@ -204,4 +204,26 @@ func Test_getwininfo_au()
bwipe!
endfunc

+func Test_getwininfo_status_height()
+ set laststatus=0
+ vsplit
+ let info = getwininfo(win_getid())[0]
+ call assert_equal(0, info.status_height)
+
+ set laststatus=2
+ let info = getwininfo(win_getid())[0]
+ call assert_equal(1, info.status_height)
+
+ set laststatus=1
+ only
+ let info = getwininfo(win_getid())[0]
+ call assert_equal(0, info.status_height)
+ vsplit
+ let info = getwininfo(win_getid())[0]
+ call assert_equal(1, info.status_height)
+
+ set laststatus&vim
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index d347aac56..000561a9e 100644
--- a/src/version.c
+++ b/src/version.c
@@ -729,6 +729,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1944,
/**/
1943,
/**/
Reply all
Reply to author
Forward
0 new messages