diff --git a/runtime/doc/testing.txt b/runtime/doc/testing.txt
index f2f04a2..0601cb9 100644
--- a/runtime/doc/testing.txt
+++ b/runtime/doc/testing.txt
@@ -154,9 +154,12 @@
 		    move:	Optional; if used and TRUE then a mouse move
 			        event can be generated.
 				Only {args} row: and col: are used and
-				required; they are interpreted as pixels.
+				required; they are interpreted as pixels or
+				screen cells, depending on "cell".
 				Only results in an event when 'mousemoveevent'
 				is set or a popup uses mouse move events.
+		    cell:	Optional: when present and TRUE then "move"
+				uses screen cells instead of pixel positions
 
 		"scrollbar":
 		  Set or drag the left, right or horizontal scrollbar.  Only
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index d0600c9..b390d14 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -1209,66 +1209,71 @@
   endif
 endfunc
 
+func MouseWasMoved()
+  let pos = getmousepos()
+  call add(g:eventlist, #{row: pos.screenrow, col: pos.screencol})
+endfunc
+
 func Test_gui_mouse_move_event()
   let args = #{move: 1, button: 0, multiclick: 0, modifiers: 0}
 
-  " default, do not generate mouse move events
+  " by default, does not generate mouse move events
   set mousemev&
   call assert_false(&mousemev)
 
-  let g:n_event = 0
-  nnoremap <special> <MouseMove> :let g:n_event += 1<CR>
+  let g:eventlist = []
+  nnoremap <special> <silent> <MouseMove> :call MouseWasMoved()<CR>
 
   " start at mouse pos (1,1), clear counter
   call PrepareForMouseEvent(args)
-  let g:n_event = 0
+  let g:eventlist = []
 
-  call extend(args, #{row: 30, col: 300})
+  call extend(args, #{row: 3, col: 30, cell: v:true})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
-  call extend(args, #{row: 100, col: 300})
+  call extend(args, #{row: 10, col: 30, cell: v:true})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
   " no events since mousemev off
-  call assert_equal(0, g:n_event)
+  call assert_equal([], g:eventlist)
 
   " turn on mouse events and try the same thing
   set mousemev
   call PrepareForMouseEvent(args)
-  let g:n_event = 0
+  let g:eventlist = []
 
-  call extend(args, #{row: 30, col: 300})
+  call extend(args, #{row: 3, col: 30, cell: v:true})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
-  call extend(args, #{row: 100, col: 300})
+  call extend(args, #{row: 10, col: 30, cell: v:true})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
-  call assert_equal(2, g:n_event)
+  call assert_equal([#{row: 4, col: 31}, #{row: 11, col: 31}], g:eventlist)
 
-  " wiggle the mouse around, shouldn't get events
+  " wiggle the mouse around within a screen cell, shouldn't trigger events
+  call extend(args, #{cell: v:false})
   call PrepareForMouseEvent(args)
-  let g:n_event = 0
+  let g:eventlist = []
 
-  call extend(args, #{row: 1, col: 2})
+  call extend(args, #{row: 1, col: 2, cell: v:false})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
-  call extend(args, #{row: 2, col: 2})
+  call extend(args, #{row: 2, col: 2, cell: v:false})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
-  call extend(args, #{row: 2, col: 1})
+  call extend(args, #{row: 2, col: 1, cell: v:false})
   call test_gui_event('mouse', args)
   call feedkeys('', 'Lx!')
 
-  call PrepareForMouseEvent(args)
-  call assert_equal(0, g:n_event)
+  call assert_equal([], g:eventlist)
 
-  unlet g:n_event
+  unlet g:eventlist
   unmap <MouseMove>
   set mousemev&
 endfunc
diff --git a/src/testing.c b/src/testing.c
index 572dcdc..23ab98f 100644
--- a/src/testing.c
+++ b/src/testing.c
@@ -1386,7 +1386,15 @@
     col = (int)dict_get_number(args, (char_u *)"col");
 
     if (move)
+    {
+	if (dict_get_bool(args, (char_u *)"cell", FALSE))
+	{
+	    // click in the middle of the character cell
+	    row = row * gui.char_height + gui.char_height / 2;
+	    col = col * gui.char_width + gui.char_width / 2;
+	}
 	gui_mouse_moved(col, row);
+    }
     else
     {
 	button = (int)dict_get_number(args, (char_u *)"button");
diff --git a/src/version.c b/src/version.c
index 1b98b03..f36e552 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    4965,
+/**/
     4964,
 /**/
     4963,
