Fix terminal damage after leaving Vi mode

This fixes an issue when search results were not damaged when leaving Vi
mode.
This commit is contained in:
Kirill Chibisov 2022-02-02 20:20:14 +03:00 committed by GitHub
parent 8f1abe13e6
commit 40b5e179a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 9 additions and 3 deletions

View File

@ -769,9 +769,15 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
#[inline]
fn toggle_vi_mode(&mut self) {
if self.terminal.mode().contains(TermMode::VI) {
// Damage line indicator and Vi cursor if we're leaving Vi mode.
self.terminal.damage_vi_cursor();
self.terminal.damage_line(0, 0, self.terminal.columns() - 1);
// If we had search running when leaving Vi mode we should mark terminal fully damaged
// to cleanup highlighted results.
if self.search_state.dfas().is_some() {
self.terminal.mark_fully_damaged();
} else {
// Damage line indicator and Vi cursor.
self.terminal.damage_vi_cursor();
self.terminal.damage_line(0, 0, self.terminal.columns() - 1);
}
} else {
self.clear_selection();
}