mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-14 05:33:59 -04:00
scrollback: don't allow more scrolling when already at the top or bottom
This commit is contained in:
parent
e01060caf9
commit
a01efd07e3
1 changed files with 9 additions and 6 deletions
15
commands.c
15
commands.c
|
|
@ -44,14 +44,14 @@ cmd_scrollback_up(struct terminal *term, int rows)
|
||||||
if (end >= term->grid->offset) {
|
if (end >= term->grid->offset) {
|
||||||
/* Not wrapped */
|
/* Not wrapped */
|
||||||
if (new_view >= term->grid->offset && new_view <= end)
|
if (new_view >= term->grid->offset && new_view <= end)
|
||||||
new_view = end;
|
new_view = end + 1;
|
||||||
} else {
|
} else {
|
||||||
if (new_view >= term->grid->offset || new_view <= end)
|
if (new_view >= term->grid->offset || new_view <= end)
|
||||||
new_view = end;
|
new_view = end + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
LOG_DBG("scrollback UP: %d -> %d (offset = %d, rows = %d)",
|
LOG_DBG("scrollback UP: %d -> %d (offset = %d, end = %d, rows = %d)",
|
||||||
term->grid->view, new_view, term->grid->offset, term->grid->num_rows);
|
term->grid->view, new_view, term->grid->offset, end, term->grid->num_rows);
|
||||||
|
|
||||||
if (new_view == term->grid->view)
|
if (new_view == term->grid->view)
|
||||||
return;
|
return;
|
||||||
|
|
@ -71,6 +71,9 @@ cmd_scrollback_down(struct terminal *term, int rows)
|
||||||
if (term->grid == &term->alt)
|
if (term->grid == &term->alt)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (term->grid->view == term->grid->offset)
|
||||||
|
return;
|
||||||
|
|
||||||
rows = min(rows, term->grid->num_rows - term->rows);
|
rows = min(rows, term->grid->num_rows - term->rows);
|
||||||
|
|
||||||
assert(term->grid->offset >= 0);
|
assert(term->grid->offset >= 0);
|
||||||
|
|
@ -106,8 +109,8 @@ cmd_scrollback_down(struct terminal *term, int rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LOG_DBG("scrollback DOWN: %d -> %d (offset = %d, rows = %d)",
|
LOG_DBG("scrollback DOWN: %d -> %d (offset = %d, end = %d, rows = %d)",
|
||||||
term->grid->view, new_view, term->grid->offset, term->grid->num_rows);
|
term->grid->view, new_view, term->grid->offset, end, term->grid->num_rows);
|
||||||
|
|
||||||
if (new_view == term->grid->view)
|
if (new_view == term->grid->view)
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue