Normalize the whole color selection in xdrawcursor.

dev
Christoph Lohmann 2015-10-06 00:21:44 +02:00
parent 80fe97f8a6
commit 2ea02c937e
1 changed files with 22 additions and 11 deletions

25
st.c
View File

@ -3850,12 +3850,29 @@ xdrawcursor(void)
xdrawglyph(og, oldx, oldy); xdrawglyph(og, oldx, oldy);
g.u = term.line[term.c.y][term.c.x].u; g.u = term.line[term.c.y][term.c.x].u;
/*
* Select the right color for the right mode.
*/
if (IS_SET(MODE_REVERSE)) {
g.mode |= ATTR_REVERSE;
g.bg = defaultfg;
if (ena_sel && selected(term.c.x, term.c.y)) { if (ena_sel && selected(term.c.x, term.c.y)) {
drawcol = dc.col[defaultcs];
g.fg = defaultrcs;
} else {
drawcol = dc.col[defaultrcs]; drawcol = dc.col[defaultrcs];
g.fg = defaultcs;
}
} else {
g.fg = defaultfg; g.fg = defaultfg;
g.bg = defaultrcs; if (ena_sel && selected(term.c.x, term.c.y)) {
g.bg = defaultcs;
drawcol = dc.col[defaultrcs];
} else { } else {
drawcol = dc.col[defaultcs]; drawcol = dc.col[defaultcs];
g.bg = defaultrcs;
}
} }
if (IS_SET(MODE_HIDE)) if (IS_SET(MODE_HIDE))
@ -3869,12 +3886,6 @@ xdrawcursor(void)
case 0: /* Blinking Block */ case 0: /* Blinking Block */
case 1: /* Blinking Block (Default) */ case 1: /* Blinking Block (Default) */
case 2: /* Steady Block */ case 2: /* Steady Block */
if (IS_SET(MODE_REVERSE)) {
g.mode |= ATTR_REVERSE;
g.fg = defaultcs;
g.bg = defaultfg;
}
g.mode |= term.line[term.c.y][curx].mode & ATTR_WIDE; g.mode |= term.line[term.c.y][curx].mode & ATTR_WIDE;
xdrawglyph(g, term.c.x, term.c.y); xdrawglyph(g, term.c.x, term.c.y);
break; break;