summaryrefslogtreecommitdiff
path: root/st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff
diff options
context:
space:
mode:
authorstkhan <personal@slickd.xyz>2022-06-20 19:54:29 +0000
committerstkhan <personal@slickd.xyz>2022-06-20 19:54:29 +0000
commit4c40a4dc245f7715f4891ed02d71475628e7a959 (patch)
treefa52419490b5a0d89d746f6e3a0b0c1e675b7726 /st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff
parent513b0e238b98f72a01d740a0bd99a3739918645c (diff)
new directory structure
Diffstat (limited to 'st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff')
-rw-r--r--st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff153
1 files changed, 0 insertions, 153 deletions
diff --git a/st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff b/st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff
deleted file mode 100644
index 91c871a..0000000
--- a/st-0.8.5/patches/st-blinking_cursor-20211116-2f6e597.diff
+++ /dev/null
@@ -1,153 +0,0 @@
-From a3cdd0753bf578cd4e6db7c6507481f3b5c38aea Mon Sep 17 00:00:00 2001
-From: Steve Ward <planet36@gmail.com>
-Date: Tue, 16 Nov 2021 14:15:06 -0500
-Subject: [PATCH] Allow blinking cursor
-
----
- config.def.h | 19 +++++++++++++------
- x.c | 47 +++++++++++++++++++++++++++++++++++------------
- 2 files changed, 48 insertions(+), 18 deletions(-)
-
-diff --git a/config.def.h b/config.def.h
-index 6f05dce..1a5fed0 100644
---- a/config.def.h
-+++ b/config.def.h
-@@ -133,13 +133,20 @@ static unsigned int defaultcs = 256;
- static unsigned int defaultrcs = 257;
-
- /*
-- * Default shape of cursor
-- * 2: Block ("█")
-- * 4: Underline ("_")
-- * 6: Bar ("|")
-- * 7: Snowman ("☃")
-+ * https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h4-Functions-using-CSI-_-ordered-by-the-final-character-lparen-s-rparen:CSI-Ps-SP-q.1D81
-+ * Default style of cursor
-+ * 0: blinking block
-+ * 1: blinking block (default)
-+ * 2: steady block ("█")
-+ * 3: blinking underline
-+ * 4: steady underline ("_")
-+ * 5: blinking bar
-+ * 6: steady bar ("|")
-+ * 7: blinking st cursor
-+ * 8: steady st cursor
- */
--static unsigned int cursorshape = 2;
-+static unsigned int cursorstyle = 1;
-+static Rune stcursor = 0x2603; /* snowman ("☃") */
-
- /*
- * Default columns and rows numbers
-diff --git a/x.c b/x.c
-index 89786b8..7d2447d 100644
---- a/x.c
-+++ b/x.c
-@@ -253,6 +253,7 @@ static char *opt_name = NULL;
- static char *opt_title = NULL;
-
- static int oldbutton = 3; /* button event on startup: 3 = release */
-+static int cursorblinks = 0;
-
- void
- clipcopy(const Arg *dummy)
-@@ -1529,29 +1530,44 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)
- /* draw the new one */
- if (IS_SET(MODE_FOCUSED)) {
- switch (win.cursor) {
-- case 7: /* st extension */
-- g.u = 0x2603; /* snowman (U+2603) */
-+ default:
-+ case 0: /* blinking block */
-+ case 1: /* blinking block (default) */
-+ if (IS_SET(MODE_BLINK))
-+ break;
- /* FALLTHROUGH */
-- case 0: /* Blinking Block */
-- case 1: /* Blinking Block (Default) */
-- case 2: /* Steady Block */
-+ case 2: /* steady block */
- xdrawglyph(g, cx, cy);
- break;
-- case 3: /* Blinking Underline */
-- case 4: /* Steady Underline */
-+ case 3: /* blinking underline */
-+ if (IS_SET(MODE_BLINK))
-+ break;
-+ /* FALLTHROUGH */
-+ case 4: /* steady underline */
- XftDrawRect(xw.draw, &drawcol,
- borderpx + cx * win.cw,
- borderpx + (cy + 1) * win.ch - \
- cursorthickness,
- win.cw, cursorthickness);
- break;
-- case 5: /* Blinking bar */
-- case 6: /* Steady bar */
-+ case 5: /* blinking bar */
-+ if (IS_SET(MODE_BLINK))
-+ break;
-+ /* FALLTHROUGH */
-+ case 6: /* steady bar */
- XftDrawRect(xw.draw, &drawcol,
- borderpx + cx * win.cw,
- borderpx + cy * win.ch,
- cursorthickness, win.ch);
- break;
-+ case 7: /* blinking st cursor */
-+ if (IS_SET(MODE_BLINK))
-+ break;
-+ /* FALLTHROUGH */
-+ case 8: /* steady st cursor */
-+ g.u = stcursor;
-+ xdrawglyph(g, cx, cy);
-+ break;
- }
- } else {
- XftDrawRect(xw.draw, &drawcol,
-@@ -1708,9 +1724,12 @@ xsetmode(int set, unsigned int flags)
- int
- xsetcursor(int cursor)
- {
-- if (!BETWEEN(cursor, 0, 7)) /* 7: st extension */
-+ if (!BETWEEN(cursor, 0, 8)) /* 7-8: st extensions */
- return 1;
- win.cursor = cursor;
-+ cursorblinks = win.cursor == 0 || win.cursor == 1 ||
-+ win.cursor == 3 || win.cursor == 5 ||
-+ win.cursor == 7;
- return 0;
- }
-
-@@ -1954,6 +1973,10 @@ run(void)
- if (FD_ISSET(ttyfd, &rfd) || xev) {
- if (!drawing) {
- trigger = now;
-+ if (IS_SET(MODE_BLINK)) {
-+ win.mode ^= MODE_BLINK;
-+ }
-+ lastblink = now;
- drawing = 1;
- }
- timeout = (maxlatency - TIMEDIFF(now, trigger)) \
-@@ -1964,7 +1987,7 @@ run(void)
-
- /* idle detected or maxlatency exhausted -> draw */
- timeout = -1;
-- if (blinktimeout && tattrset(ATTR_BLINK)) {
-+ if (blinktimeout && (cursorblinks || tattrset(ATTR_BLINK))) {
- timeout = blinktimeout - TIMEDIFF(now, lastblink);
- if (timeout <= 0) {
- if (-timeout > blinktimeout) /* start visible */
-@@ -2000,7 +2023,7 @@ main(int argc, char *argv[])
- {
- xw.l = xw.t = 0;
- xw.isfixed = False;
-- xsetcursor(cursorshape);
-+ xsetcursor(cursorstyle);
-
- ARGBEGIN {
- case 'a':
---
-2.34.0
-