diff options
| -rw-r--r-- | x.c | 30 | 
1 files changed, 12 insertions, 18 deletions
@@ -1418,25 +1418,19 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, Glyph og)  	 */  	g.mode &= ATTR_BOLD|ATTR_ITALIC|ATTR_UNDERLINE|ATTR_STRUCK|ATTR_WIDE; -	if (IS_SET(MODE_REVERSE)) { -		g.mode |= ATTR_REVERSE; -		g.bg = defaultfg; -		if (selected(cx, cy)) { -			drawcol = dc.col[defaultcs]; -			g.fg = defaultrcs; -		} else { -			drawcol = dc.col[defaultrcs]; -			g.fg = defaultcs; -		} +	if (selected(cx, cy)) { +		g.bg = defaultrcs; +		g.fg = defaultfg;  	} else { -		if (selected(cx, cy)) { -			g.fg = defaultfg; -			g.bg = defaultrcs; -		} else { -			g.fg = defaultbg; -			g.bg = defaultcs; -		} -		drawcol = dc.col[g.bg]; +		g.bg = defaultcs; +		g.fg = defaultbg; +	} +	drawcol = dc.col[g.bg]; + +	if (IS_SET(MODE_REVERSE)) { +		drawcol.color.red = ~drawcol.color.red; +		drawcol.color.green = ~drawcol.color.green; +		drawcol.color.blue = ~drawcol.color.blue;  	}  	/* draw the new one */  | 
