commit be2877cd042eaf5d0f7dda102f526357aa577232
parent d8e11bdb0ecbccbaab7d944a577b9557ccff5d52
Author: Aurélien Aptel <aurelien.aptel@gmail.com>
Date:   Wed, 15 Feb 2012 19:33:48 +0100

show dark cursor when unfocused.

Diffstat:
MTODO | 7++++++-
Mconfig.def.h | 10++++++----
Mst.c | 8++++++--
3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/TODO b/TODO @@ -10,10 +10,15 @@ code & interface * clean selection code * clean and complete terminfo entry -* fix shift up/down (shift selection in emacs) * fast drawing * ... +bugs +---- + +* handle XOpenMI() errors +* fix shift up/down (shift selection in emacs) + misc ---- diff --git a/config.def.h b/config.def.h @@ -32,13 +32,15 @@ static const char *colorname[] = { /* more colors can be added to use with DefaultXX */ "#cccccc", + "#333333", }; /* Default colors (colorname index) - foreground, background, cursor */ -#define DefaultFG 7 -#define DefaultBG 0 -#define DefaultCS 16 + foreground, background, cursor, unfocused cursor */ +#define DefaultFG 7 +#define DefaultBG 0 +#define DefaultCS 16 +#define DefaultUCS 17 /* Special keys (change & recompile st.info accordingly) Keep in mind that kpress() in st.c hardcodes some keys. diff --git a/st.c b/st.c @@ -1826,10 +1826,14 @@ xdrawcursor(void) { xcopy(oldx, oldy, 1, 1); /* draw the new one */ - if(!(term.c.state & CURSOR_HIDE) && (xw.state & WIN_FOCUSED)) { - sl = utf8size(g.c); + if(!(term.c.state & CURSOR_HIDE)) { + if(!(xw.state & WIN_FOCUSED)) + g.bg = DefaultUCS; + 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); oldx = term.c.x, oldy = term.c.y; }