X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;ds=sidebyside;f=st.c;h=de3d04599707731ea0e2add3f63f029cbeec25ac;hb=4de64fa4d24fe0164bc59dd853982a43a9c19e56;hp=49a9770c4f55b92322339eb2fe9f73cbd150032a;hpb=4018b2c5075c1cab603ca137ef5f6d68b9cee483;p=st.git diff --git a/st.c b/st.c index 49a9770..de3d045 100644 --- a/st.c +++ b/st.c @@ -758,7 +758,7 @@ bpress(XEvent *e) { void selcopy(void) { char *str, *ptr, *p; - int x, y, bufsize, is_selected = 0, size; + int x, y, bufsize, isselected = 0, size; Glyph *gp, *last; if(sel.bx == -1) { @@ -769,7 +769,7 @@ selcopy(void) { /* append every set & selected glyph to the selection */ for(y = sel.b.y; y < sel.e.y + 1; y++) { - is_selected = 0; + isselected = 0; gp = &term.line[y][0]; last = gp + term.col; @@ -780,7 +780,7 @@ selcopy(void) { if(!selected(x, y)) { continue; } else { - is_selected = 1; + isselected = 1; } p = (gp->state & GLYPH_SET) ? gp->c : " "; @@ -798,7 +798,7 @@ selcopy(void) { * st. * FIXME: Fix the computer world. */ - if(is_selected && y < sel.e.y) + if(isselected && y < sel.e.y) *ptr++ = '\n'; } *ptr = 0; @@ -835,10 +835,6 @@ selnotify(XEvent *e) { *repl++ = '\r'; } - last = data + nitems * format / 8; - repl = data; - - ttywrite((const char *)data, nitems * format / 8); XFree(data); /* number of 32-bit chunks returned */ @@ -2362,10 +2358,8 @@ 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, dc.col[IS_SET(MODE_REVERSE) ? defaultfg : defaultbg].pixel); - XFillRectangle(xw.dpy, xw.buf, dc.gc, 0, 0, xw.w, xw.h); - XftDrawChange(xw.draw, xw.buf); + xclear(0, 0, xw.w, xw.h); } static inline ushort @@ -2972,14 +2966,33 @@ xdrawcursor(void) { /* draw the new one */ if(!(IS_SET(MODE_HIDE))) { - if(!(xw.state & WIN_FOCUSED)) - g.bg = defaultucs; - - if(IS_SET(MODE_REVERSE)) - g.mode |= ATTR_REVERSE, g.fg = defaultcs, g.bg = defaultfg; + if(xw.state & WIN_FOCUSED) { + if(IS_SET(MODE_REVERSE)) { + g.mode |= ATTR_REVERSE; + g.fg = defaultcs; + g.bg = defaultfg; + } - sl = utf8size(g.c); - xdraws(g.c, g, term.c.x, term.c.y, 1, sl); + sl = utf8size(g.c); + xdraws(g.c, g, term.c.x, term.c.y, 1, sl); + } else { + XftDrawRect(xw.draw, &dc.col[defaultcs], + borderpx + term.c.x * xw.cw, + borderpx + term.c.y * xw.ch, + xw.cw - 1, 1); + XftDrawRect(xw.draw, &dc.col[defaultcs], + borderpx + term.c.x * xw.cw, + borderpx + term.c.y * xw.ch, + 1, xw.ch - 1); + XftDrawRect(xw.draw, &dc.col[defaultcs], + borderpx + (term.c.x + 1) * xw.cw - 1, + borderpx + term.c.y * xw.ch, + 1, xw.ch - 1); + XftDrawRect(xw.draw, &dc.col[defaultcs], + borderpx + term.c.x * xw.cw, + borderpx + (term.c.y + 1) * xw.ch - 1, + xw.cw, 1); + } oldx = term.c.x, oldy = term.c.y; } }