Mercurial > vim
changeset 23213:477f1b4c6826 v8.2.2152
patch 8.2.2152: screenpos() does not include the WinBar offset
Commit: https://github.com/vim/vim/commit/8dd46e72cfb13b8de793c808ee009c45e881903a
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Dec 17 21:35:29 2020 +0100
patch 8.2.2152: screenpos() does not include the WinBar offset
Problem: screenpos() does not include the WinBar offset.
Solution: Use W_WINROW() instead of directly using w_window. (closes https://github.com/vim/vim/issues/7487)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 17 Dec 2020 21:45:04 +0100 |
parents | c9badf8f1544 |
children | 66b2d1b54e53 |
files | src/move.c src/testdir/test_cursor_func.vim src/version.c |
diffstat | 3 files changed, 8 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/move.c +++ b/src/move.c @@ -1247,7 +1247,7 @@ textpos2screenpos( // character is left or right of the window row = scol = ccol = ecol = 0; } - *rowp = wp->w_winrow + row + rowoff; + *rowp = W_WINROW(wp) + row + rowoff; *scolp = scol + coloff; *ccolp = ccol + coloff; *ecolp = ecol + coloff;
--- a/src/testdir/test_cursor_func.vim +++ b/src/testdir/test_cursor_func.vim @@ -101,6 +101,11 @@ func Test_screenpos() close call assert_equal({}, screenpos(999, 1, 1)) bwipe! + + call assert_equal({'col': 1, 'row': 1, 'endcol': 1, 'curscol': 1}, screenpos(win_getid(), 1, 1)) + nmenu WinBar.TEST : + call assert_equal({'col': 1, 'row': 2, 'endcol': 1, 'curscol': 1}, screenpos(win_getid(), 1, 1)) + nunmenu WinBar.TEST endfunc func Test_screenpos_number()