diff --git a/src/attach.rs b/src/attach.rs index bec20b0..c1cf22f 100644 --- a/src/attach.rs +++ b/src/attach.rs @@ -133,16 +133,15 @@ fn adjust_scroll(input: &str, cursor: usize, scroll: &mut usize, cols: usize) { if max_visible == 0 { return; } - let threshold = (max_visible as f64 * 0.9) as usize; let nchars = input.chars().count(); - if cursor > *scroll + threshold { - *scroll = cursor - threshold; + if cursor >= *scroll + max_visible { + *scroll = cursor + 1 - max_visible; } if cursor < *scroll { *scroll = cursor; } - if cursor < *scroll + threshold && *scroll + max_visible > nchars { + if *scroll + max_visible > nchars { *scroll = nchars.saturating_sub(max_visible); } }