mirror of
https://github.com/tmux/tmux.git
synced 2025-09-01 20:57:00 +00:00
Add a cursor-style option, from Alexis Hildebrandt in GitHub issue 2960.
This commit is contained in:
34
screen.c
34
screen.c
@ -82,6 +82,8 @@ screen_init(struct screen *s, u_int sx, u_int sy, u_int hlimit)
|
||||
s->path = NULL;
|
||||
|
||||
s->cstyle = SCREEN_CURSOR_DEFAULT;
|
||||
s->default_cstyle = SCREEN_CURSOR_DEFAULT;
|
||||
s->default_mode = 0;
|
||||
s->ccolour = -1;
|
||||
s->default_ccolour = -1;
|
||||
s->tabs = NULL;
|
||||
@ -152,38 +154,38 @@ screen_reset_tabs(struct screen *s)
|
||||
bit_set(s->tabs, i);
|
||||
}
|
||||
|
||||
/* Set screen cursor style. */
|
||||
/* Set screen cursor style and mode. */
|
||||
void
|
||||
screen_set_cursor_style(struct screen *s, u_int style)
|
||||
screen_set_cursor_style(u_int style, enum screen_cursor_style *cstyle,
|
||||
int *mode)
|
||||
{
|
||||
log_debug("%s: new %u, was %u", __func__, style, s->cstyle);
|
||||
switch (style) {
|
||||
case 0:
|
||||
s->cstyle = SCREEN_CURSOR_DEFAULT;
|
||||
*cstyle = SCREEN_CURSOR_DEFAULT;
|
||||
break;
|
||||
case 1:
|
||||
s->cstyle = SCREEN_CURSOR_BLOCK;
|
||||
s->mode |= MODE_CURSOR_BLINKING;
|
||||
*cstyle = SCREEN_CURSOR_BLOCK;
|
||||
*mode |= MODE_CURSOR_BLINKING;
|
||||
break;
|
||||
case 2:
|
||||
s->cstyle = SCREEN_CURSOR_BLOCK;
|
||||
s->mode &= ~MODE_CURSOR_BLINKING;
|
||||
*cstyle = SCREEN_CURSOR_BLOCK;
|
||||
*mode &= ~MODE_CURSOR_BLINKING;
|
||||
break;
|
||||
case 3:
|
||||
s->cstyle = SCREEN_CURSOR_UNDERLINE;
|
||||
s->mode |= MODE_CURSOR_BLINKING;
|
||||
*cstyle = SCREEN_CURSOR_UNDERLINE;
|
||||
*mode |= MODE_CURSOR_BLINKING;
|
||||
break;
|
||||
case 4:
|
||||
s->cstyle = SCREEN_CURSOR_UNDERLINE;
|
||||
s->mode &= ~MODE_CURSOR_BLINKING;
|
||||
*cstyle = SCREEN_CURSOR_UNDERLINE;
|
||||
*mode &= ~MODE_CURSOR_BLINKING;
|
||||
break;
|
||||
case 5:
|
||||
s->cstyle = SCREEN_CURSOR_BAR;
|
||||
s->mode |= MODE_CURSOR_BLINKING;
|
||||
*cstyle = SCREEN_CURSOR_BAR;
|
||||
*mode |= MODE_CURSOR_BLINKING;
|
||||
break;
|
||||
case 6:
|
||||
s->cstyle = SCREEN_CURSOR_BAR;
|
||||
s->mode &= ~MODE_CURSOR_BLINKING;
|
||||
*cstyle = SCREEN_CURSOR_BAR;
|
||||
*mode &= ~MODE_CURSOR_BLINKING;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user