mirror of
https://github.com/tmux/tmux.git
synced 2025-09-02 05:21:10 +00:00
Trying to avoid the occasional newline by saving the last cell on screen
is not actually helping us much and just adds complexity, so don't bother.
This commit is contained in:
39
tty.c
39
tty.c
@ -998,17 +998,6 @@ tty_cmd_linefeed(struct tty *tty, const struct tty_ctx *ctx)
|
||||
return;
|
||||
}
|
||||
|
||||
/*
|
||||
* If this line wrapped naturally (ctx->num is nonzero) and we are not
|
||||
* using margins, don't do anything - the cursor can just be moved
|
||||
* to the last cell and wrap naturally.
|
||||
*/
|
||||
if ((!tty_use_margin(tty) ||
|
||||
tty_pane_full_width(tty, ctx)) &&
|
||||
ctx->num != 0 &&
|
||||
!(tty->term->flags & TERM_EARLYWRAP))
|
||||
return;
|
||||
|
||||
tty_attributes(tty, &grid_default_cell, wp);
|
||||
|
||||
tty_region_pane(tty, ctx, ctx->orupper, ctx->orlower);
|
||||
@ -1164,8 +1153,6 @@ void
|
||||
tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx)
|
||||
{
|
||||
struct window_pane *wp = ctx->wp;
|
||||
struct screen *s = wp->screen;
|
||||
u_int cx, width;
|
||||
|
||||
if (ctx->xoff + ctx->ocx > tty->sx - 1 && ctx->ocy == ctx->orlower) {
|
||||
if (tty_pane_full_width(tty, ctx))
|
||||
@ -1174,31 +1161,7 @@ tty_cmd_cell(struct tty *tty, const struct tty_ctx *ctx)
|
||||
tty_margin_off(tty);
|
||||
}
|
||||
|
||||
/* Is the cursor in the very last position? */
|
||||
width = ctx->cell->data.width;
|
||||
if (ctx->ocx > wp->sx - width) {
|
||||
if (!tty_pane_full_width(tty, ctx)) {
|
||||
/*
|
||||
* The pane doesn't fill the entire line, the linefeed
|
||||
* will already have happened, so just move the cursor.
|
||||
*/
|
||||
if (ctx->ocy != wp->yoff + wp->screen->rlower)
|
||||
tty_cursor_pane(tty, ctx, 0, ctx->ocy + 1);
|
||||
else
|
||||
tty_cursor_pane(tty, ctx, 0, ctx->ocy);
|
||||
} else if (tty->cy != ctx->yoff + ctx->ocy ||
|
||||
tty->cx < tty->sx) {
|
||||
/*
|
||||
* The cursor isn't in the last position already, so
|
||||
* move as far right as possible and redraw the last
|
||||
* cell to move into the last position.
|
||||
*/
|
||||
cx = screen_size_x(s) - ctx->last_cell.data.width;
|
||||
tty_cursor_pane(tty, ctx, cx, ctx->ocy);
|
||||
tty_cell(tty, &ctx->last_cell, wp);
|
||||
}
|
||||
} else
|
||||
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
|
||||
tty_cursor_pane(tty, ctx, ctx->ocx, ctx->ocy);
|
||||
|
||||
tty_cell(tty, ctx->cell, wp);
|
||||
}
|
||||
|
Reference in New Issue
Block a user