diff src/popupwin.c @ 16829:5cebaecad422 v8.1.1416

patch 8.1.1416: popup_getposition() not implemented yet commit https://github.com/vim/vim/commit/bc133543b8b0ebb1d8624e37d840b739eb00f3f3 Author: Bram Moolenaar <Bram@vim.org> Date: Wed May 29 20:26:46 2019 +0200 patch 8.1.1416: popup_getposition() not implemented yet Problem: Popup_getposition() not implemented yet. Solution: Implement it. (Yasuhiro Matsumoto, closes https://github.com/vim/vim/issues/4449)
author Bram Moolenaar <Bram@vim.org>
date Wed, 29 May 2019 20:30:05 +0200
parents 069ee8dc8c8d
children 6699c03347d2
line wrap: on
line diff
--- a/src/popupwin.c
+++ b/src/popupwin.c
@@ -487,4 +487,25 @@ f_popup_move(typval_T *argvars, typval_T
     redraw_all_later(NOT_VALID);
 }
 
+/*
+ * popup_getposition({id})
+ */
+    void
+f_popup_getposition(typval_T *argvars, typval_T *rettv)
+{
+    dict_T	*dict;
+    int		id = (int)tv_get_number(argvars);
+    win_T	*wp = find_popup_win(id);
+
+    if (rettv_dict_alloc(rettv) == OK)
+    {
+	if (wp == NULL)
+	    return;  // invalid {id}
+	dict = rettv->vval.v_dict;
+	dict_add_number(dict, "line", wp->w_winrow + 1);
+	dict_add_number(dict, "col", wp->w_wincol + 1);
+	dict_add_number(dict, "width", wp->w_width);
+	dict_add_number(dict, "height", wp->w_height);
+    }
+}
 #endif // FEAT_TEXT_PROP