tDrawing a more visible rectangle as cursor on unfocus. - st - [fork] customize… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 1e7816c2023f48728e15cc4128ad8be163986902 | |
parent 5dc48af29e9972527767977be3bbc9c072cf1c13 | |
Author: Christoph Lohmann <[email protected]> | |
Date: Sat, 13 Apr 2013 09:44:00 +0200 | |
Drawing a more visible rectangle as cursor on unfocus. | |
To have a more visible cursor on unfocused windows this patch makes st draw a | |
rectangle around the terminal cell. | |
Thanks Mark Hills <[email protected]> for the suggestion! | |
Diffstat: | |
M config.def.h | 4 +--- | |
M st.c | 33 ++++++++++++++++++++++++-----… | |
2 files changed, 27 insertions(+), 10 deletions(-) | |
--- | |
diff --git a/config.def.h b/config.def.h | |
t@@ -52,18 +52,16 @@ static const char *colorname[] = { | |
/* more colors can be added after 255 to use with DefaultXX */ | |
"#cccccc", | |
- "#333333", | |
}; | |
/* | |
* Default colors (colorname index) | |
- * foreground, background, cursor, unfocused cursor | |
+ * foreground, background, cursor | |
*/ | |
static unsigned int defaultfg = 7; | |
static unsigned int defaultbg = 0; | |
static unsigned int defaultcs = 256; | |
-static unsigned int defaultucs = 257; | |
/* | |
* Colors used, when the specific fg == defaultfg. So in reverse mode this | |
diff --git a/st.c b/st.c | |
t@@ -2968,14 +2968,33 @@ xdrawcursor(void) { | |
/* draw the new one */ | |
if(!(IS_SET(MODE_HIDE))) { | |
- if(!(xw.state & WIN_FOCUSED)) | |
- g.bg = defaultucs; | |
- | |
- if(IS_SET(MODE_REVERSE)) | |
- g.mode |= ATTR_REVERSE, g.fg = defaultcs, g.bg = defau… | |
+ if(xw.state & WIN_FOCUSED) { | |
+ if(IS_SET(MODE_REVERSE)) { | |
+ g.mode |= ATTR_REVERSE; | |
+ g.fg = defaultcs; | |
+ g.bg = defaultfg; | |
+ } | |
- sl = utf8size(g.c); | |
- xdraws(g.c, g, term.c.x, term.c.y, 1, sl); | |
+ sl = utf8size(g.c); | |
+ xdraws(g.c, g, term.c.x, term.c.y, 1, sl); | |
+ } else { | |
+ XftDrawRect(xw.draw, &dc.col[defaultcs], | |
+ borderpx + term.c.x * xw.cw, | |
+ borderpx + term.c.y * xw.ch, | |
+ xw.cw - 1, 1); | |
+ XftDrawRect(xw.draw, &dc.col[defaultcs], | |
+ borderpx + term.c.x * xw.cw, | |
+ borderpx + term.c.y * xw.ch, | |
+ 1, xw.ch - 1); | |
+ XftDrawRect(xw.draw, &dc.col[defaultcs], | |
+ borderpx + (term.c.x + 1) * xw.cw - 1, | |
+ borderpx + term.c.y * xw.ch, | |
+ 1, xw.ch - 1); | |
+ XftDrawRect(xw.draw, &dc.col[defaultcs], | |
+ borderpx + term.c.x * xw.cw, | |
+ borderpx + (term.c.y + 1) * xw.ch - 1, | |
+ xw.cw, 1); | |
+ } | |
oldx = term.c.x, oldy = term.c.y; | |
} | |
} |