X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/ce3efa9e9b50b0d86ef2d030657dfc69034d6ef7..b7261c84aa3af984d5a7e5f5239c4173255a215d:/st.c diff --git a/st.c b/st.c index 4d1c1bb..8206001 100644 --- a/st.c +++ b/st.c @@ -1557,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); + MODBIT(term.mode, 0, 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); @@ -2275,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)); - 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); } @@ -2440,7 +2442,9 @@ xloadfonts(char *fontstr, int fontsize) { xw.cw = dc.font.width; xw.ch = dc.font.height; + FcPatternDel(pattern, FC_SLANT); 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); @@ -2451,6 +2455,7 @@ xloadfonts(char *fontstr, int fontsize) { 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); @@ -2570,7 +2575,7 @@ xinit(void) { &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; /* @@ -2894,7 +2899,7 @@ draw(void) { } 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); } } @@ -2986,6 +2991,11 @@ xseturgency(int add) { void focus(XEvent *ev) { + XFocusChangeEvent *e = &ev->xfocus; + + if(e->mode == NotifyGrab) + return; + if(ev->type == FocusIn) { XSetICFocus(xw.xic); xw.state |= WIN_FOCUSED;