X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/6ee56d65906362f3f6ade570da0ce9c28788eaf5..84c756b97e31ca6946f634dc329ff8026caa6539:/st.c?ds=sidebyside diff --git a/st.c b/st.c index bf5b675..7f08748 100644 --- a/st.c +++ b/st.c @@ -158,8 +158,7 @@ enum escape_state { enum window_state { WIN_VISIBLE = 1, - WIN_REDRAW = 2, - WIN_FOCUSED = 4 + WIN_FOCUSED = 2 }; enum selection_type { @@ -1459,7 +1458,7 @@ treset(void) { term.top = 0; term.bot = term.row - 1; term.mode = MODE_WRAP; - memset(term.trantbl, sizeof(term.trantbl), CS_USA); + memset(term.trantbl, CS_USA, sizeof(term.trantbl)); term.charset = 0; for(i = 0; i < 2; i++) { @@ -2504,7 +2503,6 @@ tstrsequence(uchar c) { strreset(); strescseq.type = c; term.esc |= ESC_STR; - return; } void @@ -2586,7 +2584,6 @@ tcontrolcode(uchar ascii) { } /* only CAN, SUB, \a and C1 chars interrupt a sequence */ term.esc &= ~(ESC_STR_END|ESC_STR); - return; } /* @@ -2914,7 +2911,7 @@ xloadcols(void) { } /* load colors [0-15] and [256-LEN(colorname)] (config.h) */ - for(i = 0; i < LEN(colorname); i++) { + for(i = 0; i < LEN(dc.col); i++) { if(!colorname[i]) continue; if(!XftColorAllocName(xw.dpy, xw.vis, xw.cmap, colorname[i], &dc.col[i])) { @@ -2945,7 +2942,7 @@ xsetcolorname(int x, const char *name) { XRenderColor color = { .alpha = 0xffff }; Color ncolor; - if(!BETWEEN(x, 0, LEN(colorname))) + if(!BETWEEN(x, 0, LEN(dc.col))) return 1; if(!name) { @@ -3741,12 +3738,6 @@ drawregion(int x1, int y1, int x2, int y2) { void expose(XEvent *ev) { - XExposeEvent *e = &ev->xexpose; - - if(xw.state & WIN_REDRAW) { - if(!e->count) - xw.state &= ~WIN_REDRAW; - } redraw(); } @@ -3754,12 +3745,7 @@ void visibility(XEvent *ev) { XVisibilityEvent *e = &ev->xvisibility; - if(e->state == VisibilityFullyObscured) { - xw.state &= ~WIN_VISIBLE; - } else if(!(xw.state & WIN_VISIBLE)) { - /* need a full redraw for next Expose, not just a buf copy */ - xw.state |= WIN_VISIBLE | WIN_REDRAW; - } + MODBIT(xw.state, e->state != VisibilityFullyObscured, WIN_VISIBLE); } void @@ -3992,7 +3978,7 @@ run(void) { clock_gettime(CLOCK_MONOTONIC, &now); drawtimeout.tv_sec = 0; - drawtimeout.tv_nsec = (1000/xfps) * 1E6; + drawtimeout.tv_nsec = (1000 * 1E6)/ xfps; tv = &drawtimeout; dodraw = 0; @@ -4003,8 +3989,7 @@ run(void) { dodraw = 1; } deltatime = TIMEDIFF(now, last); - if(deltatime > (xev? (1000/xfps) : (1000/actionfps)) - || deltatime < 0) { + if(deltatime > 1000 / (xev ? xfps : actionfps)) { dodraw = 1; last = now; }