patch 8.1.2273: wrong default when "pos" is changed with popup_atcursor()
Problem: Wrong default when "pos" is changed with popup_atcursor().
Solution: Adjust the default line and col when "pos" is not the default
value. (#5151)
diff --git a/src/testdir/dumps/Test_popupwin_atcursor_pos.dump b/src/testdir/dumps/Test_popupwin_atcursor_pos.dump
new file mode 100644
index 0000000..a42b6e6
--- /dev/null
+++ b/src/testdir/dumps/Test_popupwin_atcursor_pos.dump
@@ -0,0 +1,12 @@
+|-+0&#ffffff0@59| @14
+|-@59| @14
+|-@25|%|-@16>@|-@14| @14
+|-@25|f+0#0000001#ffd7ff255|i|R|S|t| |-+0#0000000#ffffff0@6|F+0#0000001#ffd7ff255|i|r|s|t| |-+0#0000000#ffffff0@14| @14
+|-@25|s+0#0000001#ffd7ff255|e|C|O|n|d|-+0#0000000#ffffff0@6|S+0#0000001#ffd7ff255|e|c|o|n|D|-+0#0000000#ffffff0@14| @14
+|-@59| @14
+|-@1|f+0#0000001#ffd7ff255|i|r|s|t| |-+0#0000000#ffffff0@6|F+0#0000001#ffd7ff255|I|r|s|T| |-+0#0000000#ffffff0@38| @14
+|-@1|s+0#0000001#ffd7ff255|e|c|o|n|d|-+0#0000000#ffffff0@6|S+0#0000001#ffd7ff255|E|c|o|N|D|-+0#0000000#ffffff0@38| @14
+|-@1|#|-@16|&|-@38| @14
+|-@59| @14
+|-@59| @14
+@57|3|,|4|5| @9|T|o|p|
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index eab569f..52d5add 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -1294,6 +1294,42 @@
bwipe!
endfunc
+func Test_popup_atcursor_pos()
+ CheckScreendump
+
+ let lines =<< trim END
+ call setline(1, repeat([repeat('-', 60)], 15))
+ set so=0
+
+ normal 9G3|r#
+ let winid1 = popup_atcursor(['first', 'second'], #{
+ \ moved: [0, 0, 0],
+ \ })
+ normal 9G21|r&
+ let winid1 = popup_atcursor(['FIrsT', 'SEcoND'], #{
+ \ pos: 'botright',
+ \ moved: [0, 0, 0],
+ \ })
+ normal 3G27|r%
+ let winid1 = popup_atcursor(['fiRSt', 'seCOnd'], #{
+ \ pos: 'topleft',
+ \ moved: [0, 0, 0],
+ \ })
+ normal 3G45|r@
+ let winid1 = popup_atcursor(['First', 'SeconD'], #{
+ \ pos: 'topright',
+ \ moved: [0, 0, 0],
+ \ })
+ END
+ call writefile(lines, 'XtestPopupAtcursorPos')
+ let buf = RunVimInTerminal('-S XtestPopupAtcursorPos', #{rows: 12})
+ call VerifyScreenDump(buf, 'Test_popupwin_atcursor_pos', {})
+
+ " clean up
+ call StopVimInTerminal(buf)
+ call delete('XtestPopupAtcursorPos')
+endfunc
+
func Test_popup_beval()
CheckScreendump
CheckFeature balloon_eval_term