term->erase_char = term->basic_erase_char;
term->alt_which = 0;
term_print_finish(term);
- term->xterm_mouse = FALSE;
+ term->xterm_mouse = 0;
set_raw_mouse_mode(term->frontend, FALSE);
{
int i;
addpos234(term->screen, line, 0);
term->curs.y += 1;
term->savecurs.y += 1;
+ term->alt_y += 1;
+ term->alt_savecurs.y += 1;
} else {
/* Add a new blank line at the bottom of the screen. */
line = newline(term, newcols, FALSE);
term->tempsblines += 1;
term->curs.y -= 1;
term->savecurs.y -= 1;
+ term->alt_y -= 1;
+ term->alt_savecurs.y -= 1;
}
term->rows -= 1;
}
term->savecurs.y = 0;
if (term->savecurs.y >= newrows)
term->savecurs.y = newrows - 1;
+ if (term->savecurs.x >= newcols)
+ term->savecurs.x = newcols - 1;
+ if (term->alt_savecurs.y < 0)
+ term->alt_savecurs.y = 0;
+ if (term->alt_savecurs.y >= newrows)
+ term->alt_savecurs.y = newrows - 1;
+ if (term->alt_savecurs.x >= newcols)
+ term->alt_savecurs.x = newcols - 1;
if (term->curs.y < 0)
term->curs.y = 0;
if (term->curs.y >= newrows)
term->curs.y = newrows - 1;
if (term->curs.x >= newcols)
term->curs.x = newcols - 1;
+ if (term->alt_y < 0)
+ term->alt_y = 0;
+ if (term->alt_y >= newrows)
+ term->alt_y = newrows - 1;
+ if (term->alt_x >= newcols)
+ term->alt_x = newcols - 1;
term->alt_x = term->alt_y = 0;
term->wrapnext = term->alt_wnext = FALSE;
swap_screen(term, term->cfg.no_alt_screen ? 0 : state, FALSE, FALSE);
term->disptop = 0;
break;
- case 1000: /* xterm mouse 1 */
+ case 1000: /* xterm mouse 1 (normal) */
term->xterm_mouse = state ? 1 : 0;
set_raw_mouse_mode(term->frontend, state);
break;
- case 1002: /* xterm mouse 2 */
+ case 1002: /* xterm mouse 2 (inc. button drags) */
term->xterm_mouse = state ? 2 : 0;
set_raw_mouse_mode(term->frontend, state);
break;