patch 8.1.1548: popup_dialog() is not implemented
Problem: Popup_dialog() is not implemented.
Solution: Implement popup_dialog() and popup_filter_yesno().
diff --git a/src/testdir/test_popupwin.vim b/src/testdir/test_popupwin.vim
index a3f2046..f7a319c 100644
--- a/src/testdir/test_popupwin.vim
+++ b/src/testdir/test_popupwin.vim
@@ -870,6 +870,36 @@
call popup_clear()
endfunc
+func ShowDialog(key, result)
+ let s:cb_res = 999
+ let winid = popup_dialog('do you want to quit (Yes/no)?', {
+ \ 'filter': 'popup_filter_yesno',
+ \ 'callback': 'QuitCallback',
+ \ })
+ redraw
+ call feedkeys(a:key, "xt")
+ call assert_equal(winid, s:cb_winid)
+ call assert_equal(a:result, s:cb_res)
+endfunc
+
+func Test_popup_dialog()
+ func QuitCallback(id, res)
+ let s:cb_winid = a:id
+ let s:cb_res = a:res
+ endfunc
+
+ let winid = ShowDialog("y", 1)
+ let winid = ShowDialog("Y", 1)
+ let winid = ShowDialog("n", 0)
+ let winid = ShowDialog("N", 0)
+ let winid = ShowDialog("x", 0)
+ let winid = ShowDialog("X", 0)
+ let winid = ShowDialog("\<Esc>", 0)
+ let winid = ShowDialog("\<C-C>", -1)
+
+ delfunc QuitCallback
+endfunc
+
func Test_popup_close_callback()
func PopupDone(id, result)
let g:result = a:result