aewl
diff event.c @ 99:a19556fe83b5
applied Sanders resize patch, fixed lower bug
author | arg@10ksloc.org |
---|---|
date | Wed, 19 Jul 2006 11:31:04 +0200 |
parents | 5d88952cbf96 |
children | 3e74cc981e9b |
line diff
1.1 --- a/event.c Tue Jul 18 17:54:55 2006 +0200 1.2 +++ b/event.c Wed Jul 19 11:31:04 2006 +0200 1.3 @@ -79,7 +79,7 @@ 1.4 XSync(dpy, False); 1.5 *c->x = ocx + (ev.xmotion.x - x1); 1.6 *c->y = ocy + (ev.xmotion.y - y1); 1.7 - resize(c, False); 1.8 + resize(c, False, TopLeft); 1.9 break; 1.10 case ButtonRelease: 1.11 XUngrabPointer(dpy, CurrentTime); 1.12 @@ -93,6 +93,7 @@ 1.13 { 1.14 XEvent ev; 1.15 int ocx, ocy; 1.16 + Corner sticky; 1.17 1.18 ocx = *c->x; 1.19 ocy = *c->y; 1.20 @@ -113,7 +114,18 @@ 1.21 *c->h = abs(ocy - ev.xmotion.y); 1.22 *c->x = (ocx <= ev.xmotion.x) ? ocx : ocx - *c->w; 1.23 *c->y = (ocy <= ev.xmotion.y) ? ocy : ocy - *c->h; 1.24 - resize(c, True); 1.25 + if(ocx <= ev.xmotion.x) { 1.26 + if(ocy <= ev.xmotion.y) 1.27 + sticky = TopLeft; 1.28 + else 1.29 + sticky = BottomLeft; 1.30 + } else { 1.31 + if(ocy <= ev.xmotion.y) 1.32 + sticky = TopRight; 1.33 + else 1.34 + sticky = BottomRight; 1.35 + } 1.36 + resize(c, True, sticky); 1.37 break; 1.38 case ButtonRelease: 1.39 XUngrabPointer(dpy, CurrentTime); 1.40 @@ -153,24 +165,27 @@ 1.41 } 1.42 } 1.43 else if((c = getclient(ev->window))) { 1.44 - if(arrange == dotile && !c->isfloat) { 1.45 - if((ev->state & ControlMask) && (ev->button == Button1)) 1.46 - zoom(NULL); 1.47 - return; 1.48 - } 1.49 - /* floating windows */ 1.50 - higher(c); 1.51 switch(ev->button) { 1.52 default: 1.53 break; 1.54 case Button1: 1.55 - movemouse(c); 1.56 + if(arrange == dotile && !c->isfloat) { 1.57 + if((ev->state & ControlMask) && (ev->button == Button1)) 1.58 + zoom(NULL); 1.59 + } 1.60 + else { 1.61 + higher(c); 1.62 + movemouse(c); 1.63 + } 1.64 break; 1.65 case Button2: 1.66 lower(c); 1.67 break; 1.68 case Button3: 1.69 - resizemouse(c); 1.70 + if(arrange == dofloat || c->isfloat) { 1.71 + higher(c); 1.72 + resizemouse(c); 1.73 + } 1.74 break; 1.75 } 1.76 } 1.77 @@ -197,7 +212,7 @@ 1.78 if(ev->value_mask & CWBorderWidth) 1.79 c->border = 1; 1.80 gravitate(c, False); 1.81 - resize(c, True); 1.82 + resize(c, True, TopLeft); 1.83 } 1.84 1.85 wc.x = ev->x;