X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;ds=inline;f=st.c;h=65a1866684fea3dfe4b065e9e118ed68460f7806;hb=f0398db4d172e838ef4b4ae55db3fb6a6fee6717;hp=e885a7d5b14ef2787a860ebc5b942d8473d7b0c9;hpb=2ea02c937e3a1810050a5fb9f51e7e522d23af3b;p=st.git diff --git a/st.c b/st.c index e885a7d..65a1866 100644 --- a/st.c +++ b/st.c @@ -275,7 +275,7 @@ typedef struct { uint b; uint mask; char *s; -} Mousekey; +} MouseShortcut; typedef struct { KeySym k; @@ -695,9 +695,10 @@ utf8validate(Rune *u, size_t i) void selinit(void) { - memset(&sel.tclick1, 0, sizeof(sel.tclick1)); - memset(&sel.tclick2, 0, sizeof(sel.tclick2)); + clock_gettime(CLOCK_MONOTONIC, &sel.tclick1); + clock_gettime(CLOCK_MONOTONIC, &sel.tclick2); sel.mode = SEL_IDLE; + sel.snap = 0; sel.ob.x = -1; sel.primary = NULL; sel.clipboard = NULL; @@ -943,17 +944,17 @@ void bpress(XEvent *e) { struct timespec now; - Mousekey *mk; + MouseShortcut *ms; if (IS_SET(MODE_MOUSE) && !(e->xbutton.state & forceselmod)) { mousereport(e); return; } - for (mk = mshortcuts; mk < mshortcuts + LEN(mshortcuts); mk++) { - if (e->xbutton.button == mk->b - && match(mk->mask, e->xbutton.state)) { - ttysend(mk->s, strlen(mk->s)); + for (ms = mshortcuts; ms < mshortcuts + LEN(mshortcuts); ms++) { + if (e->xbutton.button == ms->b + && match(ms->mask, e->xbutton.state)) { + ttysend(ms->s, strlen(ms->s)); return; } } @@ -3865,13 +3866,12 @@ xdrawcursor(void) g.fg = defaultcs; } } else { - g.fg = defaultfg; if (ena_sel && selected(term.c.x, term.c.y)) { - g.bg = defaultcs; drawcol = dc.col[defaultrcs]; + g.fg = defaultfg; + g.bg = defaultrcs; } else { drawcol = dc.col[defaultcs]; - g.bg = defaultrcs; } }