--- x.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/x.c b/x.c index fbfd350..ddb158d 100644 --- a/x.c +++ b/x.c _AT_@ -1321,11 +1321,15 @@ xdrawcursor(void) utf8decode("☃", &g.u, UTF_SIZ); case 0: /* Blinking Block */ case 1: /* Blinking Block (Default) */ + if (IS_SET(MODE_BLINK)) + break; case 2: /* Steady Block */ g.mode |= term.line[term.c.y][curx].mode & ATTR_WIDE; xdrawglyph(g, term.c.x, term.c.y); break; case 3: /* Blinking Underline */ + if (IS_SET(MODE_BLINK)) + break; case 4: /* Steady Underline */ XftDrawRect(xw.draw, &drawcol, borderpx + curx * win.cw, _AT_@ -1334,6 +1338,8 @@ xdrawcursor(void) win.cw, cursorthickness); break; case 5: /* Blinking bar */ + if (IS_SET(MODE_BLINK)) + break; case 6: /* Steady bar */ XftDrawRect(xw.draw, &drawcol, borderpx + curx * win.cw, _AT_@ -1598,6 +1604,8 @@ run(void) int xfd = XConnectionNumber(xw.dpy), xev, blinkset = 0, dodraw = 0; struct timespec drawtimeout, *tv = NULL, now, last, lastblink; long deltatime; + int blink_cursor = win.cursor == 0 || win.cursor == 1 || + win.cursor == 3 || win.cursor == 5; /* Waiting for window mapping */ do { _AT_@ -1635,7 +1643,7 @@ run(void) if (FD_ISSET(cmdfd, &rfd)) { ttyread(); if (blinktimeout) { - blinkset = tattrset(ATTR_BLINK); + blinkset = blink_cursor || tattrset(ATTR_BLINK); if (!blinkset) MODBIT(term.mode, 0, MODE_BLINK); } -- 2.13.4Received on Sun Aug 06 2017 - 09:21:22 CEST
This archive was generated by hypermail 2.3.0 : Sun Aug 06 2017 - 09:24:35 CEST