diff src/evalfunc.c @ 17756:a7afcea6f40a v8.1.1875

patch 8.1.1875: cannot get size and position of the popup menu commit https://github.com/vim/vim/commit/e9bd57286a5cbb0e1ec18b5d194dc4af1bda9f3a Author: Bram Moolenaar <Bram@vim.org> Date: Sat Aug 17 19:36:06 2019 +0200 patch 8.1.1875: cannot get size and position of the popup menu Problem: Cannot get size and position of the popup menu. Solution: Add pum_getpos(). (Ben Jackson, closes https://github.com/vim/vim/issues/4827)
author Bram Moolenaar <Bram@vim.org>
date Sat, 17 Aug 2019 19:45:03 +0200
parents 4a3dca734d36
children 545119cd5554
line wrap: on
line diff
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -234,6 +234,7 @@ static void f_pow(typval_T *argvars, typ
 #endif
 static void f_prevnonblank(typval_T *argvars, typval_T *rettv);
 static void f_printf(typval_T *argvars, typval_T *rettv);
+static void f_pum_getpos(typval_T *argvars, typval_T *rettv);
 static void f_pumvisible(typval_T *argvars, typval_T *rettv);
 #ifdef FEAT_PYTHON3
 static void f_py3eval(typval_T *argvars, typval_T *rettv);
@@ -741,6 +742,7 @@ static funcentry_T global_functions[] =
     {"prop_type_get",	1, 2, 0,	  f_prop_type_get},
     {"prop_type_list",	0, 1, 0,	  f_prop_type_list},
 #endif
+    {"pum_getpos",	0, 0, 0,	  f_pum_getpos},
     {"pumvisible",	0, 0, 0,	  f_pumvisible},
 #ifdef FEAT_PYTHON3
     {"py3eval",		1, 1, 0,	  f_py3eval},
@@ -7961,6 +7963,19 @@ f_printf(typval_T *argvars, typval_T *re
 }
 
 /*
+ * "pum_getpos()" function
+ */
+    static void
+f_pum_getpos(typval_T *argvars UNUSED, typval_T *rettv UNUSED)
+{
+    if (rettv_dict_alloc(rettv) != OK)
+	return;
+#ifdef FEAT_INS_EXPAND
+    pum_set_event_info(rettv->vval.v_dict);
+#endif
+}
+
+/*
  * "pumvisible()" function
  */
     static void