Fix selection change after leaving vi-mode

This patch fixes that the right point of the selection range moves to
another point when leaves vi-mode with a selection by ToggleViMode.
The cause is that always moves a vi-mode cursor to a search origin
whether or not the current search is active.

This problem is a regression which is introduced by #5945.
This commit is contained in:
a5ob7r 2022-05-23 09:01:46 +09:00 committed by GitHub
parent 394b3ffd81
commit c10888b0f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 2 deletions

View File

@ -770,7 +770,7 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
if self.terminal.mode().contains(TermMode::VI) {
// 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() {
if self.search_state.dfas.take().is_some() {
self.terminal.mark_fully_damaged();
} else {
// Damage line indicator and Vi cursor.
@ -781,7 +781,10 @@ impl<'a, N: Notify + 'a, T: EventListener> input::ActionContext<T> for ActionCon
self.clear_selection();
}
self.cancel_search();
if self.search_active() {
self.cancel_search();
}
self.terminal.toggle_vi_mode();
*self.dirty = true;