Xinqi Bao's Git
projects
/
st.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Tmux wants this to be mutually exclusive.
[st.git]
/
st.c
diff --git
a/st.c
b/st.c
index
fa4136a
..
8206001
100644
(file)
--- a/
st.c
+++ b/
st.c
@@
-807,7
+807,6
@@
void selclear(XEvent *e) {
void
selrequest(XEvent *e) {
void
selrequest(XEvent *e) {
- fprintf(stderr, "selrequest\n");
XSelectionRequestEvent *xsre;
XSelectionEvent xev;
Atom xa_targets, string;
XSelectionRequestEvent *xsre;
XSelectionEvent xev;
Atom xa_targets, string;
@@
-843,7
+842,6
@@
selrequest(XEvent *e) {
void
xsetsel(char *str) {
void
xsetsel(char *str) {
- fprintf(stderr, "xsetsel: %s\n", str);
/* register the selection for both the clipboard and the primary */
Atom clipboard;
/* register the selection for both the clipboard and the primary */
Atom clipboard;
@@
-1559,9
+1557,11
@@
tsetmode(bool priv, bool set, int *args, int narg) {
break;
case 1000: /* 1000,1002: enable xterm mouse report */
MODBIT(term.mode, set, MODE_MOUSEBTN);
break;
case 1000: /* 1000,1002: enable xterm mouse report */
MODBIT(term.mode, set, MODE_MOUSEBTN);
+ MODBIT(term.mode, 0, MODE_MOUSEMOTION);
break;
case 1002:
MODBIT(term.mode, set, MODE_MOUSEMOTION);
break;
case 1002:
MODBIT(term.mode, set, MODE_MOUSEMOTION);
+ MODBIT(term.mode, 0, MODE_MOUSEBTN);
break;
case 1006:
MODBIT(term.mode, set, MODE_MOUSESGR);
break;
case 1006:
MODBIT(term.mode, set, MODE_MOUSESGR);
@@
-1745,8
+1745,8
@@
csihandle(void) {
break;
case 'X': /* ECH -- Erase <n> char */
DEFAULT(csiescseq.arg[0], 1);
break;
case 'X': /* ECH -- Erase <n> char */
DEFAULT(csiescseq.arg[0], 1);
- tclearregion(term.c.x, term.c.y,
term.c.x + csiescseq.arg[0],
- term.c.y, 1);
+ tclearregion(term.c.x, term.c.y,
+ term.c.
x + csiescseq.arg[0] - 1, term.c.
y, 1);
break;
case 'P': /* DCH -- Delete <n> char */
DEFAULT(csiescseq.arg[0], 1);
break;
case 'P': /* DCH -- Delete <n> char */
DEFAULT(csiescseq.arg[0], 1);
@@
-2277,7
+2277,7
@@
xresize(int col, int row) {
XFreePixmap(xw.dpy, xw.buf);
xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h,
DefaultDepth(xw.dpy, xw.scr));
XFreePixmap(xw.dpy, xw.buf);
xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h,
DefaultDepth(xw.dpy, xw.scr));
- XSetForeground(xw.dpy, dc.gc,
0
);
+ XSetForeground(xw.dpy, dc.gc,
dc.col[IS_SET(MODE_REVERSE) ? defaultfg : defaultbg].pixel
);
XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, xw.w, xw.h);
}
XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, xw.w, xw.h);
}
@@
-2442,7
+2442,9
@@
xloadfonts(char *fontstr, int fontsize) {
xw.cw = dc.font.width;
xw.ch = dc.font.height;
xw.cw = dc.font.width;
xw.ch = dc.font.height;
+ FcPatternDel(pattern, FC_SLANT);
FcPatternDel(pattern, FC_WEIGHT);
FcPatternDel(pattern, FC_WEIGHT);
+ FcPatternAddInteger(pattern, FC_SLANT, FC_SLANT_ROMAN);
FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD);
if(xloadfont(&dc.bfont, pattern))
die("st: can't open font %s\n", fontstr);
FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_BOLD);
if(xloadfont(&dc.bfont, pattern))
die("st: can't open font %s\n", fontstr);
@@
-2453,6
+2455,7
@@
xloadfonts(char *fontstr, int fontsize) {
die("st: can't open font %s\n", fontstr);
FcPatternDel(pattern, FC_WEIGHT);
die("st: can't open font %s\n", fontstr);
FcPatternDel(pattern, FC_WEIGHT);
+ FcPatternAddInteger(pattern, FC_WEIGHT, FC_WEIGHT_MEDIUM);
if(xloadfont(&dc.ifont, pattern))
die("st: can't open font %s\n", fontstr);
if(xloadfont(&dc.ifont, pattern))
die("st: can't open font %s\n", fontstr);
@@
-2572,7
+2575,7
@@
xinit(void) {
&gcvalues);
xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h,
DefaultDepth(xw.dpy, xw.scr));
&gcvalues);
xw.buf = XCreatePixmap(xw.dpy, xw.win, xw.w, xw.h,
DefaultDepth(xw.dpy, xw.scr));
- XSetForeground(xw.dpy, dc.gc,
0
);
+ XSetForeground(xw.dpy, dc.gc,
dc.col[defaultbg].pixel
);
XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, xw.w, xw.h);
//xw.buf = xw.win;
/*
XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, xw.w, xw.h);
//xw.buf = xw.win;
/*
@@
-2896,7
+2899,7
@@
draw(void) {
} else {
XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, xw.w,
xw.h, 0, 0);
} else {
XCopyArea(xw.dpy, xw.buf, xw.win, dc.gc, 0, 0, xw.w,
xw.h, 0, 0);
- XSetForeground(xw.dpy, dc.gc,
0
);
+ XSetForeground(xw.dpy, dc.gc,
dc.col[IS_SET(MODE_REVERSE) ? defaultfg : defaultbg].pixel
);
}
}
}
}
@@
-2988,6
+2991,11
@@
xseturgency(int add) {
void
focus(XEvent *ev) {
void
focus(XEvent *ev) {
+ XFocusChangeEvent *e = &ev->xfocus;
+
+ if(e->mode == NotifyGrab)
+ return;
+
if(ev->type == FocusIn) {
XSetICFocus(xw.xic);
xw.state |= WIN_FOCUSED;
if(ev->type == FocusIn) {
XSetICFocus(xw.xic);
xw.state |= WIN_FOCUSED;