mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Change cursor style handling so tmux understands which sequences contain
blinking and sets the flag appropriately, means that it works whether cnorm disables blinking or not. GitHub issue 2682.
This commit is contained in:
32
screen.c
32
screen.c
@ -80,7 +80,7 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
|
||||
s->titles = NULL;
|
||||
s->path = NULL;
|
||||
|
||||
s->cstyle = 0;
|
||||
s->cstyle = SCREEN_CURSOR_DEFAULT;
|
||||
s->ccolour = xstrdup("");
|
||||
s->tabs = NULL;
|
||||
s->sel = NULL;
|
||||
@ -155,9 +155,35 @@ screen_reset_tabs(struct screen *s)
|
||||
void
|
||||
screen_set_cursor_style(struct screen *s, u_int style)
|
||||
{
|
||||
if (style <= 6) {
|
||||
s->cstyle = style;
|
||||
switch (style)
|
||||
{
|
||||
case 0:
|
||||
s->cstyle = SCREEN_CURSOR_DEFAULT;
|
||||
break;
|
||||
case 1:
|
||||
s->cstyle = SCREEN_CURSOR_BLOCK;
|
||||
s->mode |= MODE_BLINKING;
|
||||
break;
|
||||
case 2:
|
||||
s->cstyle = SCREEN_CURSOR_BLOCK;
|
||||
s->mode &= ~MODE_BLINKING;
|
||||
break;
|
||||
case 3:
|
||||
s->cstyle = SCREEN_CURSOR_UNDERLINE;
|
||||
s->mode |= MODE_BLINKING;
|
||||
break;
|
||||
case 4:
|
||||
s->cstyle = SCREEN_CURSOR_UNDERLINE;
|
||||
s->mode &= ~MODE_BLINKING;
|
||||
break;
|
||||
case 5:
|
||||
s->cstyle = SCREEN_CURSOR_BAR;
|
||||
s->mode |= MODE_BLINKING;
|
||||
break;
|
||||
case 6:
|
||||
s->cstyle = SCREEN_CURSOR_BAR;
|
||||
s->mode &= ~MODE_BLINKING;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user