mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-10 05:33:51 -04:00
scrollback: fix off-by-one when grid size matches terminal/window size
This commit is contained in:
parent
1bb5afeb0a
commit
18c61a9a2a
1 changed files with 6 additions and 6 deletions
12
commands.c
12
commands.c
|
|
@ -30,13 +30,13 @@ cmd_scrollback_up(struct terminal *term, int rows)
|
||||||
new_view = (new_view + 1) % term->grid->num_rows;
|
new_view = (new_view + 1) % term->grid->num_rows;
|
||||||
|
|
||||||
/* Don't scroll past scrollback history */
|
/* Don't scroll past scrollback history */
|
||||||
int end = (term->grid->offset + term->rows) % term->grid->num_rows;
|
int end = (term->grid->offset + term->rows - 1) % term->grid->num_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;
|
||||||
} 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -85,13 +85,13 @@ cmd_scrollback_down(struct terminal *term, int rows)
|
||||||
} while (!all_initialized);
|
} while (!all_initialized);
|
||||||
|
|
||||||
/* Don't scroll past scrollback history */
|
/* Don't scroll past scrollback history */
|
||||||
int end = (term->grid->offset + term->rows) % term->grid->num_rows;
|
int end = (term->grid->offset + term->rows - 1) % term->grid->num_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 = term->grid->offset;
|
new_view = term->grid->offset;
|
||||||
} else {
|
} else {
|
||||||
if (new_view >= term->grid->offset || new_view < end)
|
if (new_view >= term->grid->offset || new_view <= end)
|
||||||
new_view = term->grid->offset;
|
new_view = term->grid->offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue