Commit Diff


commit - 29f341da7cf32888f45005e08de202d9a372d972
commit + 1911c9274d9b03f3d7999c6ce26e2d5169642d26
blob - 00cb6b18658a3c7864da76e850d2a8cf4009b84d
blob + ffd005fae1523bca102905cc13d86cf8f380dd92
--- x.c
+++ x.c
@@ -1418,27 +1418,21 @@ xdrawcursor(int cx, int cy, Glyph g, int ox, int oy, G
 	 */
 	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 */
 	if (IS_SET(MODE_FOCUSED)) {
 		switch (win.cursor) {