summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2021-02-22 23:54:12 +0000
committerGitHub <noreply@github.com>2021-02-22 23:54:12 +0000
commit35e6fdaddd28e348e35832be534553bc81da0a80 (patch)
tree0aa90f4a713e8900f31cf62e1192a8b1a3b28435
parent369c927d9d08c97221c76fecef71cf08cea92c91 (diff)
downloadalacritty-35e6fdaddd28e348e35832be534553bc81da0a80.tar.gz
alacritty-35e6fdaddd28e348e35832be534553bc81da0a80.zip
Fix selection after search without match
This resolves an issue where the last match would be selected after leaving non-vi search, even if further changes to the search regex did not result in any matches. Fixes #4831.
-rw-r--r--CHANGELOG.md1
-rw-r--r--alacritty/src/event.rs6
2 files changed, 4 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index f29c8f72..f0fa7e32 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -14,6 +14,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### Fixed
- Alacritty failing to start on X11 with invalid DPI reported by XRandr
+- Text selected after search without any match
### Removed
diff --git a/alacritty/src/event.rs b/alacritty/src/event.rs
index affb8f4c..de3be146 100644
--- a/alacritty/src/event.rs
+++ b/alacritty/src/event.rs
@@ -730,6 +730,9 @@ impl<'a, N: Notify + 'a, T: EventListener> ActionContext<'a, N, T> {
// Unschedule pending timers.
self.scheduler.unschedule(TimerId::DelayedSearch);
+ // Clear focused match.
+ self.search_state.focused_match = None;
+
// The viewport reset logic is only needed for vi mode, since without it our origin is
// always at the current display offset instead of at the vi cursor position which we need
// to recover to.
@@ -741,9 +744,6 @@ impl<'a, N: Notify + 'a, T: EventListener> ActionContext<'a, N, T> {
self.terminal.scroll_display(Scroll::Delta(self.search_state.display_offset_delta));
self.search_state.display_offset_delta = 0;
- // Clear focused match.
- self.search_state.focused_match = None;
-
// Reset vi mode cursor.
let mut origin = self.search_state.origin;
origin.line = min(origin.line, self.terminal.screen_lines() - 1);