const int argval;
const unsigned long bit;
} argtopriv[] = {
- { 1, PrivMode_aplCUR },
+ { 1, PrivMode_aplCUR }, // DECCKM
{ 2, PrivMode_vt52 },
- { 3, PrivMode_132 },
- { 4, PrivMode_smoothScroll },
- { 5, PrivMode_rVideo },
- { 6, PrivMode_relOrigin },
- { 7, PrivMode_Autowrap },
- // 8, bi-directional support mode
+ { 3, PrivMode_132 }, // DECCOLM
+ { 4, PrivMode_smoothScroll }, // DECSCLM
+ { 5, PrivMode_rVideo }, // DECSCNM
+ { 6, PrivMode_relOrigin }, // DECOM
+ { 7, PrivMode_Autowrap }, // DECAWM
+ // 8, auto-repeat keys // DECARM
{ 9, PrivMode_MouseX10 },
// 18, 19 printing-related
- { 25, PrivMode_VisibleCursor },
+ { 25, PrivMode_VisibleCursor }, // cnorm/cvvis/civis
#ifdef scrollBar_esc
{ scrollBar_esc, PrivMode_scrollBar },
#endif
- { 35, PrivMode_ShiftKeys }, // rxvt extension
+ { 35, PrivMode_ShiftKeys }, // rxvt extension
+ // 38, tektronix mode // DECTEK
{ 40, PrivMode_132OK },
// 41 xterm more fixes NYI
// 45 margin bell NYI
// 46 start logging
{ 47, PrivMode_Screen },
- { 66, PrivMode_aplKP },
+ { 66, PrivMode_aplKP }, // DECPAM/DECPNM
#ifndef NO_BACKSPACE_KEY
- { 67, PrivMode_BackSpace },
+ { 67, PrivMode_BackSpace }, // DECBKM
#endif
{ 1000, PrivMode_MouseX11 },
{ 1002, PrivMode_MouseBtnEvent },
break;
case 3: /* 80/132 */
if (priv_modes & PrivMode_132OK)
- {
- scr_poweron ();
- set_widthheight (((state ? 132 : 80) * fwidth), 24 * fheight);
- }
+ set_widthheight ((state ? 132 : 80) * fwidth, 24 * fheight);
break;
case 4: /* smooth scrolling */
set_option (Opt_jumpScroll, !state);
}
else
vt_emask_mouse = NoEventMask;
+
vt_select_input ();
break;
case 1010: /* scroll to bottom on TTY output inhibit */
if (option (Opt_secondaryScreen))
if (current_screen != PRIMARY)
scr_erase_screen (2);
+
scr_change_screen (state);
break;
case 1049: /* secondary screen w/ clearing first */
void
rxvt_term::scr_reset ()
{
- scr_soft_reset ();
-
view_start = 0;
num_scr = 0;
{
// Re-wrap lines. This is rather ugly, possibly because I am too dumb
// to come up with a lean and mean algorithm.
+ // TODO: maybe optimise when width didn't change
row_col_t ocur = screen.cur;
ocur.row = MOD (term_start + ocur.row, prev_total_rows);
{
scr_release ();
prev_nrow = prev_ncol = 0;
+ rvideo_mode = false;
+ scr_soft_reset ();
scr_reset ();
scr_clear (true);
scr_overlay_off ();
#endif
- rvideo_mode = false;
-
if (current_screen != PRIMARY)
scr_swap_screen ();
line->r[col] = line->r[col + count];
}
- scr_blank_line (*line, ncol - count, count,
- line->r[ncol - 1] & (RS_fgMask | RS_bgMask | RS_baseattrMask));
+ scr_blank_line (*line, ncol - count, count, rstyle);
if (selection.op && current_screen == selection.screen
&& ROWCOL_IN_ROW_AT_OR_AFTER (selection.beg, screen.cur))