aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md1
-rw-r--r--alacritty/src/event.rs3
-rw-r--r--alacritty_terminal/src/term/mod.rs1
3 files changed, 3 insertions, 2 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 188276c6..0e79c274 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Fixed
- Creating the IPC socket failing if WAYLAND_DISPLAY contains an absolute path
+- Crash when resetting the terminal while in vi mode
## 0.10.1
diff --git a/alacritty/src/event.rs b/alacritty/src/event.rs
index 1fd42fe6..6a14097a 100644
--- a/alacritty/src/event.rs
+++ b/alacritty/src/event.rs
@@ -853,10 +853,9 @@ impl<'a, N: Notify + 'a, T: EventListener> ActionContext<'a, N, T> {
}
// Reset display offset and cursor position.
+ self.terminal.vi_mode_cursor.point = self.search_state.origin;
self.terminal.scroll_display(Scroll::Delta(self.search_state.display_offset_delta));
self.search_state.display_offset_delta = 0;
- self.terminal.vi_mode_cursor.point =
- self.search_state.origin.grid_clamp(self.terminal, Boundary::Grid);
*self.dirty = true;
}
diff --git a/alacritty_terminal/src/term/mod.rs b/alacritty_terminal/src/term/mod.rs
index 5ad1b4ad..96f0d1e7 100644
--- a/alacritty_terminal/src/term/mod.rs
+++ b/alacritty_terminal/src/term/mod.rs
@@ -1795,6 +1795,7 @@ impl<T: EventListener> Handler for Term<T> {
self.title_stack = Vec::new();
self.title = None;
self.selection = None;
+ self.vi_mode_cursor = Default::default();
// Preserve vi mode across resets.
self.mode &= TermMode::VI;