mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-08 10:06:22 -05:00
term/vt/csi: break out cursor save/restore to dedicated functions
This commit is contained in:
parent
c0a3f89775
commit
bae3c871bb
4 changed files with 15 additions and 10 deletions
6
csi.c
6
csi.c
|
|
@ -1141,15 +1141,11 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
}
|
||||
|
||||
case 's':
|
||||
term->grid->saved_cursor = term->grid->cursor;
|
||||
term->vt.saved_attrs = term->vt.attrs;
|
||||
term->saved_charsets = term->charsets;
|
||||
term_save_cursor(term);
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
term_restore_cursor(term, &term->grid->saved_cursor);
|
||||
term->vt.attrs = term->vt.saved_attrs;
|
||||
term->charsets = term->saved_charsets;
|
||||
break;
|
||||
|
||||
case 't': {
|
||||
|
|
|
|||
12
terminal.c
12
terminal.c
|
|
@ -2254,13 +2254,25 @@ term_reset_view(struct terminal *term)
|
|||
term_damage_view(term);
|
||||
}
|
||||
|
||||
void
|
||||
term_save_cursor(struct terminal *term)
|
||||
{
|
||||
term->grid->saved_cursor = term->grid->cursor;
|
||||
term->vt.saved_attrs = term->vt.attrs;
|
||||
term->saved_charsets = term->charsets;
|
||||
}
|
||||
|
||||
void
|
||||
term_restore_cursor(struct terminal *term, const struct cursor *cursor)
|
||||
{
|
||||
int row = min(cursor->point.row, term->rows - 1);
|
||||
int col = min(cursor->point.col, term->cols - 1);
|
||||
|
||||
term_cursor_to(term, row, col);
|
||||
term->grid->cursor.lcf = cursor->lcf;
|
||||
|
||||
term->vt.attrs = term->vt.saved_attrs;
|
||||
term->charsets = term->saved_charsets;
|
||||
}
|
||||
|
||||
void
|
||||
|
|
|
|||
|
|
@ -595,6 +595,7 @@ void term_reverse_index(struct terminal *term);
|
|||
|
||||
void term_arm_blink_timer(struct terminal *term);
|
||||
|
||||
void term_save_cursor(struct terminal *term);
|
||||
void term_restore_cursor(struct terminal *term, const struct cursor *cursor);
|
||||
|
||||
void term_visual_focus_in(struct terminal *term);
|
||||
|
|
|
|||
6
vt.c
6
vt.c
|
|
@ -366,15 +366,11 @@ action_esc_dispatch(struct terminal *term, uint8_t final)
|
|||
case 0:
|
||||
switch (final) {
|
||||
case '7':
|
||||
term->grid->saved_cursor = term->grid->cursor;
|
||||
term->vt.saved_attrs = term->vt.attrs;
|
||||
term->saved_charsets = term->charsets;
|
||||
term_save_cursor(term);
|
||||
break;
|
||||
|
||||
case '8':
|
||||
term_restore_cursor(term, &term->grid->saved_cursor);
|
||||
term->vt.attrs = term->vt.saved_attrs;
|
||||
term->charsets = term->saved_charsets;
|
||||
break;
|
||||
|
||||
case 'c':
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue