csi: implement DECSET 47 - use alternate screen buffer

This commit is contained in:
Daniel Eklöf 2021-01-16 13:34:40 +01:00
parent 50b309da06
commit e41654d4ea
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 4 additions and 1 deletions

View file

@ -36,7 +36,7 @@
(https://codeberg.org/dnkl/foot/issues/244).
* Key/mouse binding `select-extend-character-wise`, which forces the
selection mode to 'character-wise' when extending a selection.
* `DECSET 1047` and `DECSET 1048`.
* `DECSET` `47`, `1047` and `1048`.
### Changed

3
csi.c
View file

@ -496,6 +496,7 @@ decset_decrst(struct terminal *term, unsigned param, bool enable)
term_restore_cursor(term, &term->grid->saved_cursor);
break;
case 47:
case 1047:
case 1049:
if (enable && term->grid != &term->alt) {
@ -626,6 +627,7 @@ xtsave(struct terminal *term, unsigned param)
case 12: term->xtsave.cursor_blink = term->cursor_blink.decset; break;
case 25: term->xtsave.show_cursor = !term->hide_cursor; break;
case 45: term->xtsave.reverse_wrap = term->reverse_wrap; break;
case 47: term->xtsave.alt_screen = term->grid == &term->alt; break;
case 1000: term->xtsave.mouse_click = term->mouse_tracking == MOUSE_CLICK; break;
case 1001: break;
case 1002: term->xtsave.mouse_drag = term->mouse_tracking == MOUSE_DRAG; break;
@ -663,6 +665,7 @@ xtrestore(struct terminal *term, unsigned param)
case 12: enable = term->xtsave.cursor_blink; break;
case 25: enable = term->xtsave.show_cursor; break;
case 45: enable = term->xtsave.reverse_wrap; break;
case 47: enable = term->xtsave.alt_screen; break;
case 1000: enable = term->xtsave.mouse_click; break;
case 1001: return;
case 1002: enable = term->xtsave.mouse_drag; break;