JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
If the selection is cleared, draw() and do it on button press too.
[st.git] / st.c
diff --git a/st.c b/st.c
index 8e31a73..a2f4f46 100644 (file)
--- 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;