Xinqi Bao's Git
projects
/
st.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
d84f3f4
)
Have selected() check whether selection exists
author
Devin J. Pohly <
[email protected]
>
Thu, 22 Feb 2018 04:48:28 +0000
(22:48 -0600)
committer
Devin J. Pohly <
[email protected]
>
Mon, 26 Feb 2018 03:53:24 +0000
(21:53 -0600)
Signed-off-by: Devin J. Pohly <
[email protected]
>
st.c
diff
|
blob
|
history
x.c
diff
|
blob
|
history
diff --git
a/st.c
b/st.c
index
dae7b91
..
d4dfe6e
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-419,7
+419,8
@@
selnormalize(void)
int
selected(int x, int y)
{
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)
return 0;
if (sel.type == SEL_RECTANGULAR)
diff --git
a/x.c
b/x.c
index
7bfa1b7
..
e3e5451
100644
(file)
--- a/
x.c
+++ b/
x.c
@@
-1418,7
+1418,6
@@
xdrawcursor(void)
static int oldx = 0, oldy = 0;
int curx;
Glyph g = {' ', ATTR_NULL, defaultbg, defaultcs}, og;
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);
Color drawcol;
LIMIT(oldx, 0, term.col-1);
@@
-1434,7
+1433,7
@@
xdrawcursor(void)
/* remove the old cursor */
og = term.line[oldy][oldx];
/* 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);
og.mode ^= ATTR_REVERSE;
xdrawglyph(og, oldx, oldy);
@@
-1448,7
+1447,7
@@
xdrawcursor(void)
if (IS_SET(MODE_REVERSE)) {
g.mode |= ATTR_REVERSE;
g.bg = defaultfg;
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 {
drawcol = dc.col[defaultcs];
g.fg = defaultrcs;
} else {
@@
-1456,7
+1455,7
@@
xdrawcursor(void)
g.fg = defaultcs;
}
} else {
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;
drawcol = dc.col[defaultrcs];
g.fg = defaultfg;
g.bg = defaultrcs;
@@
-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 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;
if (!(win.state & WIN_VISIBLE))
return;
@@
-1574,7
+1572,7
@@
drawregion(int x1, int y1, int x2, int y2)
new = term.line[y][x];
if (new.mode == ATTR_WDUMMY)
continue;
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);
new.mode ^= ATTR_REVERSE;
if (i > 0 && ATTRCMP(base, new)) {
xdrawglyphfontspecs(specs, base, i, ox, y);