comparison src/charset.c @ 30207:7147c6059e80 v9.0.0439

patch 9.0.0439: cursor wrong if inserting before line with virtual text above Commit: https://github.com/vim/vim/commit/88b79cb7d47e2e1fee1baf4016c50b861e6b21c4 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Sep 10 22:32:14 2022 +0100 patch 9.0.0439: cursor wrong if inserting before line with virtual text above Problem: Cursor wrong if inserting before line with virtual text above. Solution: Add the width of the "above" virtual text to the cursor position. (issue #11084)
author Bram Moolenaar <Bram@vim.org>
date Sat, 10 Sep 2022 23:45:02 +0200
parents ed6f3d2593df
children 45788c16b3a5
comparison
equal deleted inserted replaced
30206:20daf0e6b8b1 30207:7147c6059e80
1574 // in Insert mode, if "start_incl" is true the text gets inserted 1574 // in Insert mode, if "start_incl" is true the text gets inserted
1575 // after the virtual text, thus add its width 1575 // after the virtual text, thus add its width
1576 if (((State & MODE_INSERT) == 0 || cts.cts_start_incl) && !on_NUL) 1576 if (((State & MODE_INSERT) == 0 || cts.cts_start_incl) && !on_NUL)
1577 // cursor is after inserted text, unless on the NUL 1577 // cursor is after inserted text, unless on the NUL
1578 vcol += cts.cts_cur_text_width; 1578 vcol += cts.cts_cur_text_width;
1579 else
1580 // insertion also happens after the "above" virtual text
1581 vcol += cts.cts_first_char;
1579 #endif 1582 #endif
1580 *cursor = vcol + head; // cursor at start 1583 *cursor = vcol + head; // cursor at start
1581 } 1584 }
1582 } 1585 }
1583 } 1586 }