mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-07 04:06:07 -05:00
csi: let CSI 0 q mean "switch to user configured cursor style"
According to the specs, \E[0 q means a blinking block cursor. However, since it also states that \E[1 q *also* is a blinking block cursor, and that it is the default, *and* given that fact that parameter-less CSIs typically means "reset", let's make it mean "reset to the user configured cursor style".
This commit is contained in:
parent
3ccdef3498
commit
49034bb759
4 changed files with 11 additions and 3 deletions
10
csi.c
10
csi.c
|
|
@ -929,7 +929,12 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
case 'q': {
|
||||
int param = vt_param_get(term, 0, 0);
|
||||
switch (param) {
|
||||
case 0: case 1: /* blinking block */
|
||||
case 0:
|
||||
term->cursor_style = term->default_cursor_style;
|
||||
term->cursor_blinking = false; /* TODO: configurable */
|
||||
break;
|
||||
|
||||
case 1: /* blinking block */
|
||||
case 2: /* steady block */
|
||||
term->cursor_style = CURSOR_BLOCK;
|
||||
break;
|
||||
|
|
@ -945,7 +950,8 @@ csi_dispatch(struct terminal *term, uint8_t final)
|
|||
break;
|
||||
}
|
||||
|
||||
term->cursor_blinking = param == 0 || param & 1;
|
||||
if (param != 0)
|
||||
term->cursor_blinking = param & 1;
|
||||
if (term->cursor_blinking)
|
||||
LOG_WARN("unimplemented: blinking cursor");
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -237,7 +237,7 @@ foot+base|foot base fragment,
|
|||
vpa=\E[%i%p1%dd,
|
||||
E3=\E[3J,
|
||||
Ms=\E]52;%p1%s;%p2%s\007,
|
||||
Se=\E[2 q,
|
||||
Se=\E[0 q,
|
||||
Ss=\E[%p1%d q,
|
||||
|
||||
# XM tells ncurses how to initialize the mouse. The xterm terminfo
|
||||
|
|
|
|||
1
main.c
1
main.c
|
|
@ -371,6 +371,7 @@ main(int argc, char *const *argv)
|
|||
conf.colors.bright[7],
|
||||
},
|
||||
},
|
||||
.default_cursor_style = conf.cursor.style,
|
||||
.cursor_style = conf.cursor.style,
|
||||
.selection = {
|
||||
.start = {-1, -1},
|
||||
|
|
|
|||
|
|
@ -293,6 +293,7 @@ struct terminal {
|
|||
struct coord cursor;
|
||||
struct coord saved_cursor;
|
||||
struct coord alt_saved_cursor;
|
||||
enum cursor_style default_cursor_style;
|
||||
enum cursor_style cursor_style;
|
||||
bool cursor_blinking;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue