---
config.def.h | 2 ++
x.c | 20 +++++++++++++-------
2 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/config.def.h b/config.def.h
index 877afab..34b9296 100644
--- a/config.def.h
+++ b/config.def.h
_AT_@ -123,7 +123,9 @@ unsigned int defaultrcs = 257;
/*
* Default shape of cursor
+ * 1: Blinking Block ("█")
* 2: Block ("█")
+ * 3: Blinking Underline ("_")
* 4: Underline ("_")
* 6: Bar ("|")
* 7: Snowman ("☃")
diff --git a/x.c b/x.c
index c484dfc..5199008 100644
--- a/x.c
+++ b/x.c
_AT_@ -1325,12 +1325,15 @@ xdrawcursor(void)
case 7: /* st extension: snowman */
utf8decode("☃", &g.u, UTF_SIZ);
case 0: /* Blinking Block */
+ if (IS_SET(MODE_BLINK)) break;
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_@ -1339,6 +1342,7 @@ 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_@ -1639,11 +1643,9 @@ run(void)
}
if (FD_ISSET(cmdfd, &rfd)) {
ttyread();
- if (blinktimeout) {
- blinkset = tattrset(ATTR_BLINK);
- if (!blinkset)
- MODBIT(term.mode, 0, MODE_BLINK);
- }
+ blinkset = blinktimeout || tattrset(ATTR_BLINK);
+ if (!blinkset)
+ MODBIT(term.mode, 0, MODE_BLINK);
}
if (FD_ISSET(xfd, &rfd))
_AT_@ -1672,8 +1674,12 @@ run(void)
XNextEvent(xw.dpy, &ev);
if (XFilterEvent(&ev, None))
continue;
- if (handler[ev.type])
- (handler[ev.type])(&ev);
+ if (handler[ev.type]) {
+ (handler[ev.type])(&ev);
+ lastblink = now;
+ if (IS_SET(MODE_BLINK)) MODBIT(term.mode, 0, MODE_BLINK);
+ }
+
}
draw();
--
2.11.0
--
Mohamed Aziz Knani
http://www.aziz.tn/
Received on Sun Jan 28 2018 - 14:03:53 CET
This archive was generated by hypermail 2.3.0 : Sun Jan 28 2018 - 14:12:22 CET