tHave selected() check whether selection exists - st - [fork] customized build … | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 138caf294ea4d7968df36ead9d5ff5fc49f6215f | |
parent d84f3f4bd15e7d65fc0334cf7d62913c901bad00 | |
Author: Devin J. Pohly <[email protected]> | |
Date: Wed, 21 Feb 2018 22:48:28 -0600 | |
Have selected() check whether selection exists | |
Signed-off-by: Devin J. Pohly <[email protected]> | |
Diffstat: | |
M st.c | 3 ++- | |
M x.c | 10 ++++------ | |
2 files changed, 6 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -419,7 +419,8 @@ selnormalize(void) | |
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) | |
diff --git a/x.c b/x.c | |
t@@ -1418,7 +1418,6 @@ xdrawcursor(void) | |
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); | |
t@@ -1434,7 +1433,7 @@ xdrawcursor(void) | |
/* 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); | |
t@@ -1448,7 +1447,7 @@ xdrawcursor(void) | |
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 { | |
t@@ -1456,7 +1455,7 @@ xdrawcursor(void) | |
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; | |
t@@ -1555,7 +1554,6 @@ drawregion(int x1, int y1, int x2, int y2) | |
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; | |
t@@ -1574,7 +1572,7 @@ drawregion(int x1, int y1, int x2, int y2) | |
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); |