# st

Unnamed repository; edit this file 'description' to name the repository.

| Log | Files | Refs | README | LICENSE

    commit 2ea02c937e3a1810050a5fb9f51e7e522d23af3b
    parent 80fe97f8a66d31945bdddbb9381b2cc54359f48e
    Author: Christoph Lohmann <20h@r-36.net>
    Date:   Tue,  6 Oct 2015 00:21:44 +0200

    Normalize the whole color selection in xdrawcursor.

    Diffstat:
    Mst.c | 33++++++++++++++++++++++-----------

    1 file changed, 22 insertions(+), 11 deletions(-)
    diff --git a/st.c b/st.c
    @@ -3850,12 +3850,29 @@ xdrawcursor(void)
     	xdrawglyph(og, oldx, oldy);

     	g.u = term.line[term.c.y][term.c.x].u;
    -	if (ena_sel && selected(term.c.x, term.c.y)) {
    -		drawcol = dc.col[defaultrcs];
    -		g.fg = defaultfg;
    -		g.bg = defaultrcs;
    +
    +	/*
    +	 * 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)) {
    +			drawcol = dc.col[defaultcs];
    +			g.fg = defaultrcs;
    +		} else {
    +			drawcol = dc.col[defaultrcs];
    +			g.fg = defaultcs;
    +		}
     	} else {
    -		drawcol = dc.col[defaultcs];
    +		g.fg = defaultfg;
    +		if (ena_sel && selected(term.c.x, term.c.y)) {
    +			g.bg = defaultcs;
    +			drawcol = dc.col[defaultrcs];
    +		} else {
    +			drawcol = dc.col[defaultcs];
    +			g.bg = defaultrcs;
    +		}
     	}

     	if (IS_SET(MODE_HIDE))
    @@ -3869,12 +3886,6 @@ xdrawcursor(void)
     		case 0: /* Blinking Block */
     		case 1: /* Blinking Block (Default) */
     		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;
     			xdrawglyph(g, term.c.x, term.c.y);
     			break;