Mercurial > vim
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 } |