sixel: implement private mode 8452 - cursor positioning after sixel

When disabled (the default), the cursor is positioned on a new line
after emitting a sixel image.

When enabled, the cursor is positioned to the right of the sixel
image.

Closes #363
This commit is contained in:
Daniel Eklöf 2021-02-16 19:11:38 +01:00
parent 9666d1d0b7
commit 03c675c6e2
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
5 changed files with 37 additions and 2 deletions

7
csi.c
View file

@ -552,6 +552,10 @@ decset_decrst(struct terminal *term, unsigned param, bool enable)
term->bracketed_paste = enable;
break;
case 8452:
term->sixel.cursor_right_of_graphics = enable;
break;
case 27127:
term->modify_escape_key = enable;
break;
@ -613,6 +617,7 @@ decrqm(const struct terminal *term, unsigned param, bool *enabled)
case 1049: *enabled = term->grid == &term->alt; return true;
case 1079: *enabled = term->sixel.use_private_palette; return true;
case 2004: *enabled = term->bracketed_paste; return true;
case 8452: *enabled = term->sixel.cursor_right_of_graphics; return true;
case 27127: *enabled = term->modify_escape_key; return true;
case 737769: *enabled = term_ime_is_enabled(term); return true;
}
@ -653,6 +658,7 @@ xtsave(struct terminal *term, unsigned param)
case 1049: term->xtsave.alt_screen = term->grid == &term->alt; break;
case 1070: term->xtsave.sixel_private_palette = term->sixel.use_private_palette; break;
case 2004: term->xtsave.bracketed_paste = term->bracketed_paste; break;
case 8452: term->xtsave.sixel_cursor_right_of_graphics = term->sixel.cursor_right_of_graphics; break;
case 27127: term->xtsave.modify_escape_key = term->modify_escape_key; break;
case 737769: term->xtsave.ime = term_ime_is_enabled(term); break;
}
@ -692,6 +698,7 @@ xtrestore(struct terminal *term, unsigned param)
case 1049: enable = term->xtsave.alt_screen; break;
case 1070: enable = term->xtsave.sixel_private_palette; break;
case 2004: enable = term->xtsave.bracketed_paste; break;
case 8452: enable = term->xtsave.sixel_cursor_right_of_graphics; break;
case 27127: enable = term->xtsave.modify_escape_key; break;
case 737769: enable = term->xtsave.ime; break;