aboutsummaryrefslogtreecommitdiff
path: root/x.c
diff options
context:
space:
mode:
Diffstat (limited to 'x.c')
-rw-r--r--x.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/x.c b/x.c
index ddae6b6..a7f619e 100644
--- a/x.c
+++ b/x.c
@@ -157,7 +157,7 @@ static void selnotify(XEvent *);
157static void selclear_(XEvent *); 157static void selclear_(XEvent *);
158static void selrequest(XEvent *); 158static void selrequest(XEvent *);
159static void setsel(char *, Time); 159static void setsel(char *, Time);
160static void mousesel(XEvent *); 160static void mousesel(XEvent *, int);
161static void mousereport(XEvent *); 161static void mousereport(XEvent *);
162static char *kmap(KeySym, uint); 162static char *kmap(KeySym, uint);
163static int match(uint, uint); 163static int match(uint, uint);
@@ -313,7 +313,7 @@ y2row(int y)
313} 313}
314 314
315void 315void
316mousesel(XEvent *e) 316mousesel(XEvent *e, int done)
317{ 317{
318 int type, seltype = SEL_REGULAR; 318 int type, seltype = SEL_REGULAR;
319 uint state = e->xbutton.state & ~(Button1Mask | forceselmod); 319 uint state = e->xbutton.state & ~(Button1Mask | forceselmod);
@@ -324,8 +324,9 @@ mousesel(XEvent *e)
324 break; 324 break;
325 } 325 }
326 } 326 }
327 327 selextend(x2col(e->xbutton.x), y2row(e->xbutton.y), seltype, done);
328 selextend(x2col(e->xbutton.x), y2row(e->xbutton.y), seltype); 328 if (done)
329 setsel(getsel(), e->xbutton.time);
329} 330}
330 331
331void 332void
@@ -630,16 +631,10 @@ brelease(XEvent *e)
630 return; 631 return;
631 } 632 }
632 633
633 if (e->xbutton.button == Button2) { 634 if (e->xbutton.button == Button2)
634 selpaste(NULL); 635 selpaste(NULL);
635 } else if (e->xbutton.button == Button1) { 636 else if (e->xbutton.button == Button1)
636 if (sel.mode == SEL_READY) { 637 mousesel(e, 1);
637 mousesel(e);
638 setsel(getsel(), e->xbutton.time);
639 } else
640 selclear_(NULL);
641 sel.mode = SEL_IDLE;
642 }
643} 638}
644 639
645void 640void
@@ -650,11 +645,7 @@ bmotion(XEvent *e)
650 return; 645 return;
651 } 646 }
652 647
653 if (!sel.mode) 648 mousesel(e, 0);
654 return;
655
656 sel.mode = SEL_READY;
657 mousesel(e);
658} 649}
659 650
660void 651void