summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2019-05-04 15:47:48 +0200
committerBram Moolenaar <Bram@vim.org>2019-05-04 15:47:48 +0200
commitbb8476be871811e40ddc88c598d9e553aba7fb79 (patch)
tree9bcd94d557472209ff6ee9db7bb4b8af72b8b9a2
parent25190db225d63e185e77e043e694ef455b3cf304 (diff)
downloadvim-git-bb8476be871811e40ddc88c598d9e553aba7fb79.tar.gz
patch 8.1.1262: cannot simulate a mouse click in a testv8.1.1262
Problem: Cannot simulate a mouse click in a test. Solution: Add test_setmouse().
-rw-r--r--runtime/doc/eval.txt8
-rw-r--r--runtime/doc/usr_41.txt3
-rw-r--r--src/evalfunc.c9
-rw-r--r--src/version.c2
4 files changed, 21 insertions, 1 deletions
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 8faf17f63..c12e69e4a 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -2700,6 +2700,7 @@ test_override({expr}, {val}) none test with Vim internal overrides
test_refcount({expr}) Number get the reference count of {expr}
test_scrollbar({which}, {value}, {dragging})
none scroll in the GUI for testing
+test_setmouse({row}, {col}) none set the mouse position for testing
test_settime({expr}) none set current time for testing
timer_info([{id}]) List information about timers
timer_pause({id}, {pause}) none pause or unpause a timer
@@ -9841,6 +9842,13 @@ test_scrollbar({which}, {value}, {dragging}) *test_scrollbar()*
Only works when the {which} scrollbar actually exists,
obviously only when using the GUI.
+test_setmouse({row}, {col}) *test_setmouse()*
+ Set the mouse position to be used for the next mouse action.
+ {row} and {col} are one based.
+ For example: >
+ call test_setmouse(4, 20)
+ call feedkeys("\<LeftMouse>", "xt")
+
test_settime({expr}) *test_settime()*
Set the time Vim uses internally. Currently only used for
timestamps in the history, as they are used in viminfo, and
diff --git a/runtime/doc/usr_41.txt b/runtime/doc/usr_41.txt
index c95dca66a..cef6fd793 100644
--- a/runtime/doc/usr_41.txt
+++ b/runtime/doc/usr_41.txt
@@ -1,4 +1,4 @@
-*usr_41.txt* For Vim version 8.1. Last change: 2019 Apr 06
+*usr_41.txt* For Vim version 8.1. Last change: 2019 May 04
VIM USER MANUAL - by Bram Moolenaar
@@ -955,6 +955,7 @@ Testing: *test-functions*
test_null_partial() return a null Partial function
test_null_string() return a null String
test_settime() set the time Vim uses internally
+ test_setmouse() set the mouse position
test_feedinput() add key sequence to input buffer
test_option_not_set() reset flag indicating option was set
test_scrollbar() simulate scrollbar movement in the GUI
diff --git a/src/evalfunc.c b/src/evalfunc.c
index 2b1b1424c..7b6785cfa 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -456,6 +456,7 @@ static void f_test_null_string(typval_T *argvars, typval_T *rettv);
#ifdef FEAT_GUI
static void f_test_scrollbar(typval_T *argvars, typval_T *rettv);
#endif
+static void f_test_setmouse(typval_T *argvars, typval_T *rettv);
static void f_test_settime(typval_T *argvars, typval_T *rettv);
#ifdef FEAT_FLOAT
static void f_tan(typval_T *argvars, typval_T *rettv);
@@ -993,6 +994,7 @@ static struct fst
#ifdef FEAT_GUI
{"test_scrollbar", 3, 3, f_test_scrollbar},
#endif
+ {"test_setmouse", 2, 2, f_test_setmouse},
{"test_settime", 1, 1, f_test_settime},
#ifdef FEAT_TIMERS
{"timer_info", 0, 1, f_timer_info},
@@ -14494,6 +14496,13 @@ f_test_scrollbar(typval_T *argvars, typval_T *rettv UNUSED)
#endif
static void
+f_test_setmouse(typval_T *argvars, typval_T *rettv UNUSED)
+{
+ mouse_row = (time_t)tv_get_number(&argvars[0]) - 1;
+ mouse_col = (time_t)tv_get_number(&argvars[1]) - 1;
+}
+
+ static void
f_test_settime(typval_T *argvars, typval_T *rettv UNUSED)
{
time_for_testing = (time_t)tv_get_number(&argvars[0]);
diff --git a/src/version.c b/src/version.c
index d78ef3db7..07f3962fb 100644
--- a/src/version.c
+++ b/src/version.c
@@ -768,6 +768,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1262,
+/**/
1261,
/**/
1260,