mirror of
https://github.com/sxyazi/yazi.git
synced 2026-07-25 08:41:05 +00:00
simplify offset logic, make it deterministic
This commit is contained in:
parent
7fa9c4da72
commit
499f5f4c73
1 changed files with 3 additions and 9 deletions
|
|
@ -39,15 +39,9 @@ impl Input {
|
||||||
));
|
));
|
||||||
|
|
||||||
let (limit, snap) = (self.limit(), self.snap_mut());
|
let (limit, snap) = (self.limit(), self.snap_mut());
|
||||||
let half_limit = limit / 2;
|
let offset = snap.cursor.saturating_sub(limit / 2).min(snap.len().saturating_sub(limit - 1));
|
||||||
let max_offset = snap.cursor.saturating_sub(half_limit);
|
if snap.offset != offset {
|
||||||
let min_offset = max_offset.min(snap.len().saturating_sub(limit - 1));
|
snap.offset = offset;
|
||||||
if snap.offset > max_offset {
|
|
||||||
snap.offset = max_offset;
|
|
||||||
} else if snap.offset < min_offset {
|
|
||||||
snap.offset = min_offset;
|
|
||||||
} else if snap.value.is_empty() {
|
|
||||||
snap.offset = 0;
|
|
||||||
} else {
|
} else {
|
||||||
let delta = snap.mode.delta();
|
let delta = snap.mode.delta();
|
||||||
let s = snap.slice(snap.offset..snap.cursor + delta);
|
let s = snap.slice(snap.offset..snap.cursor + delta);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue