summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-12-17 21:35:29 +0100
committerBram Moolenaar <Bram@vim.org>2020-12-17 21:35:29 +0100
commit8dd46e72cfb13b8de793c808ee009c45e881903a (patch)
treeaeab92f8eecfaacb74b8c94674f5c4408cc4d4fc
parenta79a8944dade9115ccaa5a06a076dfb257e56c62 (diff)
downloadvim-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.c2
-rw-r--r--src/testdir/test_cursor_func.vim5
-rw-r--r--src/version.c2
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,