all repos — st @ 138caf294ea4d7968df36ead9d5ff5fc49f6215f

st (suckless terminal) config

Have selected() check whether selection exists

Signed-off-by: Devin J. Pohly <djpohly@gmail.com>
Devin J. Pohly djpohly@gmail.com
commit

138caf294ea4d7968df36ead9d5ff5fc49f6215f

parent

d84f3f4bd15e7d65fc0334cf7d62913c901bad00

2 files changed, 6 insertions(+), 7 deletions(-)

jump to
M st.cst.c

@@ -419,7 +419,8 @@

int selected(int x, int y) { - if (sel.mode == SEL_EMPTY) + if (sel.mode == SEL_EMPTY || sel.ob.x == -1 || + sel.alt != IS_SET(MODE_ALTSCREEN)) return 0; if (sel.type == SEL_RECTANGULAR)
M x.cx.c

@@ -1418,7 +1418,6 @@ {

static int oldx = 0, oldy = 0; int curx; Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs}, og; - int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN); Color drawcol; LIMIT(oldx, 0, term.col-1);

@@ -1434,7 +1433,7 @@ curx--;

/* remove the old cursor */ og = term.line[oldy][oldx]; - if (ena_sel && selected(oldx, oldy)) + if (selected(oldx, oldy)) og.mode ^= ATTR_REVERSE; xdrawglyph(og, oldx, oldy);

@@ -1448,7 +1447,7 @@ */

if (IS_SET(MODE_REVERSE)) { g.mode |= ATTR_REVERSE; g.bg = defaultfg; - if (ena_sel && selected(term.c.x, term.c.y)) { + if (selected(term.c.x, term.c.y)) { drawcol = dc.col[defaultcs]; g.fg = defaultrcs; } else {

@@ -1456,7 +1455,7 @@ drawcol = dc.col[defaultrcs];

g.fg = defaultcs; } } else { - if (ena_sel && selected(term.c.x, term.c.y)) { + if (selected(term.c.x, term.c.y)) { drawcol = dc.col[defaultrcs]; g.fg = defaultfg; g.bg = defaultrcs;

@@ -1555,7 +1554,6 @@ {

int i, x, y, ox, numspecs; Glyph base, new; XftGlyphFontSpec *specs; - int ena_sel = sel.ob.x != -1 && sel.alt == IS_SET(MODE_ALTSCREEN); if (!(win.state & WIN_VISIBLE)) return;

@@ -1574,7 +1572,7 @@ for (x = x1; x < x2 && i < numspecs; x++) {

new = term.line[y][x]; if (new.mode == ATTR_WDUMMY) continue; - if (ena_sel && selected(x, y)) + if (selected(x, y)) new.mode ^= ATTR_REVERSE; if (i > 0 && ATTRCMP(base, new)) { xdrawglyphfontspecs(specs, base, i, ox, y);