mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-18 22:05:25 -05:00
term: cursor-left: reduce move count by one when lcf=true
When lcf is true, cursor is actually beyond the right margin, but the stored coordinate is at the margin. This means we need to reduce the number of cells to move the cursor by one. This fixes an issue where e.g. backspacing when the cursor is at the right margin erased the next-to-last character instead of the last character.
This commit is contained in:
parent
1110108c84
commit
02e3e4ac9b
2 changed files with 7 additions and 0 deletions
|
|
@ -43,6 +43,8 @@
|
|||
that it is (much) slower compared to previous foot versions. Use the
|
||||
**scrollback.multiplier** option in `foot.ini` if you find the new
|
||||
speed too slow (https://codeberg.org/dnkl/foot/issues/144).
|
||||
* Cursor left movements moving cursor to wrong location when cursor is
|
||||
“beyond” the right margin.
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
|
|
@ -1728,6 +1728,11 @@ term_cursor_home(struct terminal *term)
|
|||
void
|
||||
term_cursor_left(struct terminal *term, int count)
|
||||
{
|
||||
if (unlikely(term->grid->cursor.lcf))
|
||||
count--;
|
||||
|
||||
assert(count >= 0);
|
||||
|
||||
int move_amount = min(term->grid->cursor.point.col, count);
|
||||
term->grid->cursor.point.col -= move_amount;
|
||||
assert(term->grid->cursor.point.col >= 0);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue