Mercurial > vim
changeset 16517:9484fc00ac6b v8.1.1262
patch 8.1.1262: cannot simulate a mouse click in a test
commit https://github.com/vim/vim/commit/bb8476be871811e40ddc88c598d9e553aba7fb79
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat May 4 15:47:48 2019 +0200
patch 8.1.1262: cannot simulate a mouse click in a test
Problem: Cannot simulate a mouse click in a test.
Solution: Add test_setmouse().
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 04 May 2019 16:00:05 +0200 |
parents | c4a98e19390b |
children | e8b6651eb131 |
files | runtime/doc/eval.txt runtime/doc/usr_41.txt src/evalfunc.c src/version.c |
diffstat | 4 files changed, 21 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/runtime/doc/eval.txt +++ b/runtime/doc/eval.txt @@ -2700,6 +2700,7 @@ test_override({expr}, {val}) none test w 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}, {draggi 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
--- 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
--- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -456,6 +456,7 @@ static void f_test_null_string(typval_T #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, typv #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]);