patch 9.0.0194: cursor displayed in wrong position after removing text prop

Problem:    Cursor displayed in wrong position after removing text prop. (Ben
            Jackson)
Solution:   Invalidate the cursor position. (closes #10898)
diff --git a/src/testdir/dumps/Test_prop_with_text_cursormoved_1.dump b/src/testdir/dumps/Test_prop_with_text_cursormoved_1.dump
new file mode 100644
index 0000000..6a3c9e4
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_with_text_cursormoved_1.dump
@@ -0,0 +1,8 @@
+|t+0&#ffffff0|h|i|s| >i|s| |l|i|n|e| |o|n|e|x+0#ffffff16#ff404010@43
+@60
+@16| +0#0000000#ffffff0@43
+|t|h|i|s| |i|s| |l|i|n|e| |t|w|o| @43
+|t|h|r|e@1| @54
+|f|o|u|r| @55
+|f|i|v|e| @55
+@42|1|,|6| @10|A|l@1| 
diff --git a/src/testdir/dumps/Test_prop_with_text_cursormoved_2.dump b/src/testdir/dumps/Test_prop_with_text_cursormoved_2.dump
new file mode 100644
index 0000000..c1b5f0c
--- /dev/null
+++ b/src/testdir/dumps/Test_prop_with_text_cursormoved_2.dump
@@ -0,0 +1,8 @@
+|t+0&#ffffff0|h|i|s| |i|s| |l|i|n|e| |o|n|e| @43
+|t|h|i|s| >i|s| |l|i|n|e| |t|w|o| @43
+|t|h|r|e@1| @54
+|f|o|u|r| @55
+|f|i|v|e| @55
+|~+0#4040ff13&| @58
+|~| @58
+| +0#0000000&@41|2|,|6| @10|A|l@1| 
diff --git a/src/testdir/test_textprop.vim b/src/testdir/test_textprop.vim
index 1e5ecc6..f5ac9c1 100644
--- a/src/testdir/test_textprop.vim
+++ b/src/testdir/test_textprop.vim
@@ -2775,6 +2775,45 @@
   call delete('XscriptPropsBelowNowrap')
 endfunc
 
+func Test_props_with_text_CursorMoved()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+      call setline(1, ['this is line one', 'this is line two', 'three', 'four', 'five'])
+
+      call prop_type_add('prop', #{highlight: 'Error'})
+      let g:long_text = repeat('x', &columns * 2)
+
+      let g:prop_id = v:null
+      func! Update()
+        if line('.') == 1
+          if g:prop_id == v:null
+            let g:prop_id = prop_add(1, 0, #{type: 'prop', text_wrap: 'wrap', text: g:long_text})
+          endif
+        elseif g:prop_id != v:null
+          call prop_remove(#{id: g:prop_id})
+          let g:prop_id = v:null
+        endif
+      endfunc
+
+      autocmd CursorMoved * call Update()
+  END
+  call writefile(lines, 'XscriptPropsCursorMovec')
+  let buf = RunVimInTerminal('-S XscriptPropsCursorMovec', #{rows: 8, cols: 60})
+  call term_sendkeys(buf, "gg0w")
+  call VerifyScreenDump(buf, 'Test_prop_with_text_cursormoved_1', {})
+
+  call term_sendkeys(buf, "j")
+  call VerifyScreenDump(buf, 'Test_prop_with_text_cursormoved_2', {})
+
+  " back to the first state
+  call term_sendkeys(buf, "k")
+  call VerifyScreenDump(buf, 'Test_prop_with_text_cursormoved_1', {})
+
+  call StopVimInTerminal(buf)
+  call delete('XscriptPropsCursorMovec')
+endfunc
+
 func Test_props_with_text_after_split_join()
   CheckRunVimInTerminal