diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-12-17 21:35:29 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-12-17 21:35:29 +0100 |
commit | 8dd46e72cfb13b8de793c808ee009c45e881903a (patch) | |
tree | aeab92f8eecfaacb74b8c94674f5c4408cc4d4fc | |
parent | a79a8944dade9115ccaa5a06a076dfb257e56c62 (diff) | |
download | vim-git-8.2.2152.tar.gz |
patch 8.2.2152: screenpos() does not include the WinBar offsetv8.2.2152
Problem: screenpos() does not include the WinBar offset.
Solution: Use W_WINROW() instead of directly using w_window. (closes #7487)
-rw-r--r-- | src/move.c | 2 | ||||
-rw-r--r-- | src/testdir/test_cursor_func.vim | 5 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/move.c b/src/move.c index cd903793e..69091fd3d 100644 --- 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; diff --git a/src/testdir/test_cursor_func.vim b/src/testdir/test_cursor_func.vim index bfb908d38..d914067b2 100644 --- 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() diff --git a/src/version.c b/src/version.c index 43daa6dd8..3e6451843 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2152, +/**/ 2151, /**/ 2150, |