Fix clamping scroll in certain cases.

.clamp(min, max) requires that min < max. In some cases
first + scrolloff > last - scrolloff and we would panic.
imgbot
Blaž Hrastnik 3 years ago
parent 5aed1f3c00
commit 463f58dfda

@ -462,10 +462,9 @@ fn scroll(cx: &mut Context, offset: usize, direction: Direction) {
.min(doc_last_line);
// clamp into viewport
let line = (view.first_line + cursor_off).clamp(
view.first_line + scrolloff,
last_line.saturating_sub(scrolloff),
);
let line = (view.first_line + cursor_off)
.max(view.first_line + scrolloff)
.min(last_line.saturating_sub(scrolloff));
let text = doc.text().slice(..);
let pos = pos_at_coords(text, Position::new(line, cursor.col)); // this func will properly truncate to line end

Loading…
Cancel
Save