X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=x.c;h=b51821dc103fadb47d44901c8a3f821ba50d6615;hb=732be223ee7ba5486713c63f944699fd6285af96;hp=00cb6b18658a3c7864da76e850d2a8cf4009b84d;hpb=29f341da7cf32888f45005e08de202d9a372d972;p=st.git diff --git a/x.c b/x.c index 00cb6b1..b51821d 100644 --- a/x.c +++ b/x.c @@ -1418,25 +1418,21 @@ 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; - } - } else { - if (selected(cx, cy)) { - g.fg = defaultfg; - g.bg = defaultrcs; - } else { - g.fg = defaultbg; - g.bg = defaultcs; - } + if (selected(cx, cy)) { drawcol = dc.col[g.bg]; + } else { + g.mode |= ATTR_REVERSE; + + if (g.mode & ATTR_BOLD && BETWEEN(g.fg, 0, 7)) + drawcol = dc.col[g.fg + 8]; + else + drawcol = dc.col[g.fg]; + } + + 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 */