pinosaur
/
st.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Have selected() check whether selection exists
[st.git]
/
x.c
diff --git
a/x.c
b/x.c
index
a332ac9
..
e3e5451
100644
(file)
--- a/
x.c
+++ b/
x.c
@@
-44,6
+44,11
@@
typedef struct {
signed char crlf; /* crlf mode */
} Key;
signed char crlf; /* crlf mode */
} Key;
+/* X modifiers */
+#define XK_ANY_MOD UINT_MAX
+#define XK_NO_MOD 0
+#define XK_SWITCH_MOD (1<<13)
+
/* function definitions used in config.h */
static void clipcopy(const Arg *);
static void clippaste(const Arg *);
/* function definitions used in config.h */
static void clipcopy(const Arg *);
static void clippaste(const Arg *);
@@
-271,7
+276,6
@@
zoomabs(const Arg *arg)
xunloadfonts();
xloadfonts(usedfont, arg->f);
cresize(0, 0);
xunloadfonts();
xloadfonts(usedfont, arg->f);
cresize(0, 0);
- ttyresize(win.tw, win.th);
redraw();
xhints();
}
redraw();
xhints();
}
@@
-690,6
+694,7
@@
cresize(int width, int height)
tresize(col, row);
xresize(col, row);
tresize(col, row);
xresize(col, row);
+ ttyresize(win.tw, win.th);
}
void
}
void
@@
-1413,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);
@@
-1429,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);
@@
-1443,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 {
@@
-1451,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;
@@
-1550,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;
@@
-1569,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);
@@
-1789,7
+1792,6
@@
resize(XEvent *e)
return;
cresize(e->xconfigure.width, e->xconfigure.height);
return;
cresize(e->xconfigure.width, e->xconfigure.height);
- ttyresize(win.tw, win.th);
}
void
}
void
@@
-1818,9
+1820,8
@@
run(void)
}
} while (ev.type != MapNotify);
}
} while (ev.type != MapNotify);
- cresize(w, h);
ttynew(opt_line, opt_io, opt_cmd);
ttynew(opt_line, opt_io, opt_cmd);
-
ttyresize(win.tw, win.t
h);
+
cresize(w,
h);
clock_gettime(CLOCK_MONOTONIC, &last);
lastblink = last;
clock_gettime(CLOCK_MONOTONIC, &last);
lastblink = last;