Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam 2017-05-15 10:01:16 +01:00
commit 7edaedf3a1
1 changed files with 6 additions and 15 deletions

21
tty.c
View File

@ -838,7 +838,7 @@ tty_clear_area(struct tty *tty, const struct window_pane *wp, u_int py,
tty_term_has(tty->term, TTYC_INDN)) { tty_term_has(tty->term, TTYC_INDN)) {
tty_region(tty, py, py + ny - 1); tty_region(tty, py, py + ny - 1);
tty_margin_off(tty); tty_margin_off(tty);
tty_putcode1(tty, TTYC_INDN, ny - 1); tty_putcode1(tty, TTYC_INDN, ny);
return; return;
} }
@ -853,7 +853,7 @@ tty_clear_area(struct tty *tty, const struct window_pane *wp, u_int py,
tty_term_has(tty->term, TTYC_INDN)) { tty_term_has(tty->term, TTYC_INDN)) {
tty_region(tty, py, py + ny - 1); tty_region(tty, py, py + ny - 1);
tty_margin(tty, px, px + nx - 1); tty_margin(tty, px, px + nx - 1);
tty_putcode1(tty, TTYC_INDN, ny - 1); tty_putcode1(tty, TTYC_INDN, ny);
return; return;
} }
} }
@ -1214,7 +1214,7 @@ void
tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx) tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx)
{ {
struct window_pane *wp = ctx->wp; struct window_pane *wp = ctx->wp;
u_int i, lines; u_int i;
if ((!tty_pane_full_width(tty, ctx) && !tty_use_margin(tty)) || if ((!tty_pane_full_width(tty, ctx) && !tty_use_margin(tty)) ||
tty_fake_bce(tty, wp, 8) || tty_fake_bce(tty, wp, 8) ||
@ -1228,21 +1228,12 @@ tty_cmd_scrollup(struct tty *tty, const struct tty_ctx *ctx)
tty_region_pane(tty, ctx, ctx->orupper, ctx->orlower); tty_region_pane(tty, ctx, ctx->orupper, ctx->orlower);
tty_margin_pane(tty, ctx); tty_margin_pane(tty, ctx);
/* if (ctx->num == 1 || !tty_term_has(tty->term, TTYC_INDN)) {
* Konsole has a bug where it will ignore SU if the parameter is more
* than the height of the scroll region. Clamping the parameter doesn't
* hurt in any case.
*/
lines = tty->rlower - tty->rupper;
if (lines > ctx->num)
lines = ctx->num;
if (lines == 1 || !tty_term_has(tty->term, TTYC_INDN)) {
tty_cursor(tty, tty->rright, tty->rlower); tty_cursor(tty, tty->rright, tty->rlower);
for (i = 0; i < lines; i++) for (i = 0; i < ctx->num; i++)
tty_putc(tty, '\n'); tty_putc(tty, '\n');
} else } else
tty_putcode1(tty, TTYC_INDN, lines); tty_putcode1(tty, TTYC_INDN, ctx->num);
} }
void void