|
|
|
@ -2433,15 +2433,15 @@ csihandle(void)
|
|
|
|
|
break;
|
|
|
|
|
case ' ':
|
|
|
|
|
switch (csiescseq.mode[1]) {
|
|
|
|
|
case 'q': /* DECSCUSR -- Set Cursor Style */
|
|
|
|
|
DEFAULT(csiescseq.arg[0], 1);
|
|
|
|
|
if (!BETWEEN(csiescseq.arg[0], 0, 6)) {
|
|
|
|
|
goto unknown;
|
|
|
|
|
}
|
|
|
|
|
xw.cursor = csiescseq.arg[0];
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
case 'q': /* DECSCUSR -- Set Cursor Style */
|
|
|
|
|
DEFAULT(csiescseq.arg[0], 1);
|
|
|
|
|
if (!BETWEEN(csiescseq.arg[0], 0, 6)) {
|
|
|
|
|
goto unknown;
|
|
|
|
|
}
|
|
|
|
|
xw.cursor = csiescseq.arg[0];
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
goto unknown;
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
@ -3851,32 +3851,32 @@ xdrawcursor(void)
|
|
|
|
|
/* draw the new one */
|
|
|
|
|
if (xw.state & WIN_FOCUSED) {
|
|
|
|
|
switch (xw.cursor) {
|
|
|
|
|
case 0: /* Blinking Block */
|
|
|
|
|
case 1: /* Blinking Block (Default) */
|
|
|
|
|
case 2: /* Steady Block */
|
|
|
|
|
if (IS_SET(MODE_REVERSE)) {
|
|
|
|
|
g.mode |= ATTR_REVERSE;
|
|
|
|
|
g.fg = defaultcs;
|
|
|
|
|
g.bg = defaultfg;
|
|
|
|
|
}
|
|
|
|
|
case 0: /* Blinking Block */
|
|
|
|
|
case 1: /* Blinking Block (Default) */
|
|
|
|
|
case 2: /* Steady Block */
|
|
|
|
|
if (IS_SET(MODE_REVERSE)) {
|
|
|
|
|
g.mode |= ATTR_REVERSE;
|
|
|
|
|
g.fg = defaultcs;
|
|
|
|
|
g.bg = defaultfg;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
g.mode |= term.line[term.c.y][curx].mode & ATTR_WIDE;
|
|
|
|
|
xdrawglyph(g, term.c.x, term.c.y);
|
|
|
|
|
break;
|
|
|
|
|
case 3: /* Blinking Underline */
|
|
|
|
|
case 4: /* Steady Underline */
|
|
|
|
|
XftDrawRect(xw.draw, &dc.col[defaultcs],
|
|
|
|
|
borderpx + curx * xw.cw,
|
|
|
|
|
borderpx + (term.c.y + 1) * xw.ch - cursorthickness,
|
|
|
|
|
xw.cw, cursorthickness);
|
|
|
|
|
break;
|
|
|
|
|
case 5: /* Blinking bar */
|
|
|
|
|
case 6: /* Steady bar */
|
|
|
|
|
XftDrawRect(xw.draw, &dc.col[defaultcs],
|
|
|
|
|
borderpx + curx * xw.cw,
|
|
|
|
|
borderpx + term.c.y * xw.ch,
|
|
|
|
|
cursorthickness, xw.ch);
|
|
|
|
|
break;
|
|
|
|
|
g.mode |= term.line[term.c.y][curx].mode & ATTR_WIDE;
|
|
|
|
|
xdrawglyph(g, term.c.x, term.c.y);
|
|
|
|
|
break;
|
|
|
|
|
case 3: /* Blinking Underline */
|
|
|
|
|
case 4: /* Steady Underline */
|
|
|
|
|
XftDrawRect(xw.draw, &dc.col[defaultcs],
|
|
|
|
|
borderpx + curx * xw.cw,
|
|
|
|
|
borderpx + (term.c.y + 1) * xw.ch - cursorthickness,
|
|
|
|
|
xw.cw, cursorthickness);
|
|
|
|
|
break;
|
|
|
|
|
case 5: /* Blinking bar */
|
|
|
|
|
case 6: /* Steady bar */
|
|
|
|
|
XftDrawRect(xw.draw, &dc.col[defaultcs],
|
|
|
|
|
borderpx + curx * xw.cw,
|
|
|
|
|
borderpx + term.c.y * xw.ch,
|
|
|
|
|
cursorthickness, xw.ch);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
XftDrawRect(xw.draw, &dc.col[defaultcs],
|
|
|
|
|