From 027c7a79c18fe7ad0461bc42fa395543df4fb0f8 Mon Sep 17 00:00:00 2001 From: sxyazi Date: Wed, 15 Nov 2023 23:38:04 +0800 Subject: [PATCH] fix: panic caused by incorrect offset reset --- yazi-core/src/input/commands/move_.rs | 2 +- yazi-core/src/input/commands/type_.rs | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/yazi-core/src/input/commands/move_.rs b/yazi-core/src/input/commands/move_.rs index cda394e0..b58e2a48 100644 --- a/yazi-core/src/input/commands/move_.rs +++ b/yazi-core/src/input/commands/move_.rs @@ -39,7 +39,7 @@ impl Input { ); let snap = self.snap_mut(); - if snap.cursor < snap.offset { + if snap.offset > snap.cursor { snap.offset = snap.cursor; } else if snap.value.is_empty() { snap.offset = 0; diff --git a/yazi-core/src/input/commands/type_.rs b/yazi-core/src/input/commands/type_.rs index f4b90ed8..44df4036 100644 --- a/yazi-core/src/input/commands/type_.rs +++ b/yazi-core/src/input/commands/type_.rs @@ -55,11 +55,13 @@ impl Input { std::ops::Bound::Excluded(_) => unreachable!(), std::ops::Bound::Unbounded => 0, }; - if snap.value.drain(range).next().is_some() { - self.flush_value(); - return true; + if snap.value.drain(range).next().is_none() { + return false; } - false + + self.move_(0); + self.flush_value(); + true } fn backspace(&mut self, under: bool) -> bool {