mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
csi: cancel selection *before* switching grid
This fixes an occasional SIGSEGV
This commit is contained in:
parent
481a1cd678
commit
bab6f1d6bf
1 changed files with 4 additions and 3 deletions
7
csi.c
7
csi.c
|
|
@ -723,6 +723,8 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
|
||||
case 1049:
|
||||
if (term->grid != &term->alt) {
|
||||
selection_cancel(term);
|
||||
|
||||
term->grid = &term->alt;
|
||||
term->saved_cursor = term->cursor;
|
||||
|
||||
|
|
@ -730,7 +732,6 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
|
||||
tll_free(term->alt.damage);
|
||||
tll_free(term->alt.scroll_damage);
|
||||
selection_cancel(term);
|
||||
|
||||
term_erase(
|
||||
term,
|
||||
|
|
@ -808,14 +809,14 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
|
||||
case 1049:
|
||||
if (term->grid == &term->alt) {
|
||||
term->grid = &term->normal;
|
||||
selection_cancel(term);
|
||||
|
||||
term->grid = &term->normal;
|
||||
term_restore_cursor(term);
|
||||
|
||||
tll_free(term->alt.damage);
|
||||
tll_free(term->alt.scroll_damage);
|
||||
|
||||
selection_cancel(term);
|
||||
term_damage_all(term);
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue