show dark cursor when unfocused.
authorAurélien Aptel <aurelien.aptel@gmail.com>
Wed, 15 Feb 2012 18:33:48 +0000 (19:33 +0100)
committerAurélien Aptel <aurelien.aptel@gmail.com>
Wed, 15 Feb 2012 18:33:48 +0000 (19:33 +0100)
TODO
config.def.h
st.c

diff --git a/TODO b/TODO
index 62a9f42..311d9ca 100644 (file)
--- 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
 ----
 
index f1bd91e..169bcdd 100644 (file)
@@ -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
index 627e566..a86e0f9 100644 (file)
--- 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;
        }