tkeep some glyph modes for the cursor - st - [fork] customized build of st, the… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit f2bfd513b14a2aa27796670235557a550b4189db | |
parent e7ed326d2e914a57017c9f34459824614075519b | |
Author: Nils Reuße <[email protected]> | |
Date: Wed, 29 Mar 2017 18:34:12 +0200 | |
keep some glyph modes for the cursor | |
st currently does not keep any mode for the cursor that was active | |
in the underlying glyph (e.g. italic text), the mode is always | |
ATTR_NULL [1]. At [2] you can find a screenshot that shows the | |
implications. Other terminals (at least vte-based, such as | |
XFCE-terminal) keep some modes for the cursor. I find the current | |
behaviour very disruptive, so here is a patch that keeps a few | |
(arbitrarily chosen) modes for the cursor. | |
t[1] http://git.suckless.org/st/tree/st.c#n3963 | |
t[2] http://i.imgur.com/R2yCEaC.png | |
Diffstat: | |
M x.c | 3 +++ | |
1 file changed, 3 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/x.c b/x.c | |
t@@ -1266,6 +1266,7 @@ xdrawcursor(void) | |
Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs}, og; | |
int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN); | |
Color drawcol; | |
+ unsigned attr; | |
LIMIT(oldx, 0, term.col-1); | |
LIMIT(oldy, 0, term.row-1); | |
t@@ -1285,6 +1286,8 @@ xdrawcursor(void) | |
xdrawglyph(og, oldx, oldy); | |
g.u = term.line[term.c.y][term.c.x].u; | |
+ attr = ATTR_BOLD | ATTR_ITALIC | ATTR_UNDERLINE | ATTR_STRUCK; | |
+ g.mode |= term.line[term.c.y][term.c.x].mode & attr; | |
/* | |
* Select the right color for the right mode. |