version 1.215, 2016/11/16 13:31:22 |
version 1.216, 2016/11/28 17:50:00 |
|
|
if ((!tty_use_margin(tty) || |
if ((!tty_use_margin(tty) || |
tty_pane_full_width(tty, ctx)) && |
tty_pane_full_width(tty, ctx)) && |
ctx->num != 0 && |
ctx->num != 0 && |
!(tty->term->flags & TERM_EARLYWRAP)) { |
!(tty->term->flags & TERM_EARLYWRAP)) |
return; |
return; |
} |
|
|
|
tty_attributes(tty, &grid_default_cell, wp); |
tty_attributes(tty, &grid_default_cell, wp); |
|
|
|
|
* off the edge - if so, move the cursor back to the right. |
* off the edge - if so, move the cursor back to the right. |
*/ |
*/ |
if (ctx->xoff + ctx->ocx > tty->rright) |
if (ctx->xoff + ctx->ocx > tty->rright) |
tty_cursor(tty, tty->rright, tty->rlower); |
tty_cursor(tty, tty->rright, ctx->yoff + ctx->ocy); |
else |
else |
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); |
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy); |
|
|
|
|
u_int cx, width; |
u_int cx, width; |
|
|
if (ctx->xoff + ctx->ocx > tty->sx - 1 && |
if (ctx->xoff + ctx->ocx > tty->sx - 1 && |
ctx->yoff + ctx->ocy == ctx->orlower && |
ctx->ocy == ctx->orlower && |
tty_pane_full_width(tty, ctx)) |
tty_pane_full_width(tty, ctx)) |
tty_region_pane(tty, ctx, ctx->orupper, ctx->orlower); |
tty_region_pane(tty, ctx, ctx->orupper, ctx->orlower); |
else |
else |
|
|
/* Is the cursor in the very last position? */ |
/* Is the cursor in the very last position? */ |
width = ctx->cell->data.width; |
width = ctx->cell->data.width; |
if (ctx->ocx > wp->sx - width) { |
if (ctx->ocx > wp->sx - width) { |
if (ctx->xoff != 0 || wp->sx != tty->sx) { |
if (!tty_pane_full_width(tty, ctx)) { |
/* |
/* |
* The pane doesn't fill the entire line, the linefeed |
* The pane doesn't fill the entire line, the linefeed |
* will already have happened, so just move the cursor. |
* will already have happened, so just move the cursor. |
|
|
} else if (tty->cx < tty->sx) { |
} else if (tty->cx < tty->sx) { |
/* |
/* |
* The cursor isn't in the last position already, so |
* The cursor isn't in the last position already, so |
* move as far left as possible and redraw the last |
* move as far right as possible and redraw the last |
* cell to move into the last position. |
* cell to move into the last position. |
*/ |
*/ |
cx = screen_size_x(s) - ctx->last_cell.data.width; |
cx = screen_size_x(s) - ctx->last_cell.data.width; |