mirror of
https://github.com/tmux/tmux.git
synced 2024-10-31 22:58:49 +00:00
Cursor up and down should be limited by the scroll region (cuu should stop at
the scroll region top if starting from below it and cud stop at the bottom if starting from above). Fixes another vttest test.
This commit is contained in:
parent
81181bfb72
commit
5f2f07ed8a
@ -232,8 +232,15 @@ screen_write_cursorup(struct screen_write_ctx *ctx, u_int ny)
|
|||||||
if (ny == 0)
|
if (ny == 0)
|
||||||
ny = 1;
|
ny = 1;
|
||||||
|
|
||||||
if (ny > s->cy)
|
if (s->cy < s->rupper) {
|
||||||
ny = s->cy;
|
/* Above region. */
|
||||||
|
if (ny > s->cy)
|
||||||
|
ny = s->cy;
|
||||||
|
} else {
|
||||||
|
/* Below region. */
|
||||||
|
if (ny > s->cy - s->rupper)
|
||||||
|
ny = s->cy - s->rupper;
|
||||||
|
}
|
||||||
if (ny == 0)
|
if (ny == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -249,8 +256,15 @@ screen_write_cursordown(struct screen_write_ctx *ctx, u_int ny)
|
|||||||
if (ny == 0)
|
if (ny == 0)
|
||||||
ny = 1;
|
ny = 1;
|
||||||
|
|
||||||
if (ny > screen_size_y(s) - 1 - s->cy)
|
if (s->cy > s->rlower) {
|
||||||
ny = screen_size_y(s) - 1 - s->cy;
|
/* Below region. */
|
||||||
|
if (ny > screen_size_y(s) - 1 - s->cy)
|
||||||
|
ny = screen_size_y(s) - 1 - s->cy;
|
||||||
|
} else {
|
||||||
|
/* Above region. */
|
||||||
|
if (ny > s->rlower - s->cy)
|
||||||
|
ny = s->rlower - s->cy;
|
||||||
|
}
|
||||||
if (ny == 0)
|
if (ny == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user