X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/017af76f5c89fa1acf9b54ceaad2101dcfd880a0..dd0b7a077f5184c0eac99955aeb91f3c6a0d9c11:/st.c diff --git a/st.c b/st.c index 8e31a73..a2f4f46 100644 --- a/st.c +++ b/st.c @@ -311,6 +311,7 @@ static void brelease(XEvent *); static void bpress(XEvent *); static void bmotion(XEvent *); static void selnotify(XEvent *); +static void selclear(XEvent *); static void selrequest(XEvent *); static void selinit(void); @@ -336,6 +337,7 @@ static void (*handler[LASTEvent])(XEvent *) = { [MotionNotify] = bmotion, [ButtonPress] = bpress, [ButtonRelease] = brelease, + [SelectionClear] = selclear, [SelectionNotify] = selnotify, [SelectionRequest] = selrequest, }; @@ -549,6 +551,7 @@ bpress(XEvent *e) { sel.mode = 1; sel.ex = sel.bx = X2COL(e->xbutton.x); sel.ey = sel.by = Y2ROW(e->xbutton.y); + draw(); } } @@ -612,6 +615,14 @@ selpaste() { XConvertSelection(xw.dpy, XA_PRIMARY, sel.xtarget, XA_PRIMARY, xw.win, CurrentTime); } +void selclear(XEvent *e) { + if(sel.bx == -1) + return; + sel.bx = -1; + tsetdirt(sel.b.y, sel.e.y); + draw(); +} + void selrequest(XEvent *e) { XSelectionRequestEvent *xsre;