From aaabfe16138edd7db36060df87c85e7d76507d1e Mon Sep 17 00:00:00 2001 From: rhysd Date: Sun, 10 Jul 2022 22:05:08 +0900 Subject: [PATCH] fix cursor position after undo `delete_line_by_head` --- src/textarea.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/textarea.rs b/src/textarea.rs index 385d810..ad11801 100644 --- a/src/textarea.rs +++ b/src/textarea.rs @@ -632,7 +632,8 @@ impl<'a> TextArea<'a> { return false; } - let row = self.cursor.0; + let cursor_before = self.cursor; + let row = cursor_before.0; let line = &mut self.lines[row]; if let Some((i, _)) = line.char_indices().nth(col) { let bytes = line[i..] @@ -644,7 +645,7 @@ impl<'a> TextArea<'a> { line.replace_range(i..i + bytes, ""); self.cursor = (row, col); - self.push_history(EditKind::Remove(removed.clone(), i), (row, col)); + self.push_history(EditKind::Remove(removed.clone(), i), cursor_before); self.yank = removed; true } else {