comparison event.c @ 115:329fd7dae530

removed c->f{x,y,w,h} and c->t{x,y,w,h} in favor for the new rule handling remembering two kinds of geometries is unnecessary, removed the randomized (x,y) setting on dofloat startup, was kind too random und unpredictable
author arg@10ksloc.org
date Thu, 20 Jul 2006 07:26:23 +0200
parents dfa5cd0969a6
children eb3165734f00
comparison
equal deleted inserted replaced
114:dfa5cd0969a6 115:329fd7dae530
68 XEvent ev; 68 XEvent ev;
69 int x1, y1, ocx, ocy, di; 69 int x1, y1, ocx, ocy, di;
70 unsigned int dui; 70 unsigned int dui;
71 Window dummy; 71 Window dummy;
72 72
73 ocx = *c->x; 73 ocx = c->x;
74 ocy = *c->y; 74 ocy = c->y;
75 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, 75 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
76 None, cursor[CurMove], CurrentTime) != GrabSuccess) 76 None, cursor[CurMove], CurrentTime) != GrabSuccess)
77 return; 77 return;
78 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); 78 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
79 for(;;) { 79 for(;;) {
83 case Expose: 83 case Expose:
84 handler[Expose](&ev); 84 handler[Expose](&ev);
85 break; 85 break;
86 case MotionNotify: 86 case MotionNotify:
87 XSync(dpy, False); 87 XSync(dpy, False);
88 *c->x = ocx + (ev.xmotion.x - x1); 88 c->x = ocx + (ev.xmotion.x - x1);
89 *c->y = ocy + (ev.xmotion.y - y1); 89 c->y = ocy + (ev.xmotion.y - y1);
90 resize(c, False, TopLeft); 90 resize(c, False, TopLeft);
91 break; 91 break;
92 case ButtonRelease: 92 case ButtonRelease:
93 XUngrabPointer(dpy, CurrentTime); 93 XUngrabPointer(dpy, CurrentTime);
94 return; 94 return;
101 { 101 {
102 XEvent ev; 102 XEvent ev;
103 int ocx, ocy; 103 int ocx, ocy;
104 Corner sticky; 104 Corner sticky;
105 105
106 ocx = *c->x; 106 ocx = c->x;
107 ocy = *c->y; 107 ocy = c->y;
108 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, 108 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
109 None, cursor[CurResize], CurrentTime) != GrabSuccess) 109 None, cursor[CurResize], CurrentTime) != GrabSuccess)
110 return; 110 return;
111 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, *c->w, *c->h); 111 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h);
112 for(;;) { 112 for(;;) {
113 XMaskEvent(dpy, MouseMask | ExposureMask, &ev); 113 XMaskEvent(dpy, MouseMask | ExposureMask, &ev);
114 switch(ev.type) { 114 switch(ev.type) {
115 default: break; 115 default: break;
116 case Expose: 116 case Expose:
117 handler[Expose](&ev); 117 handler[Expose](&ev);
118 break; 118 break;
119 case MotionNotify: 119 case MotionNotify:
120 XSync(dpy, False); 120 XSync(dpy, False);
121 *c->w = abs(ocx - ev.xmotion.x); 121 c->w = abs(ocx - ev.xmotion.x);
122 *c->h = abs(ocy - ev.xmotion.y); 122 c->h = abs(ocy - ev.xmotion.y);
123 *c->x = (ocx <= ev.xmotion.x) ? ocx : ocx - *c->w; 123 c->x = (ocx <= ev.xmotion.x) ? ocx : ocx - c->w;
124 *c->y = (ocy <= ev.xmotion.y) ? ocy : ocy - *c->h; 124 c->y = (ocy <= ev.xmotion.y) ? ocy : ocy - c->h;
125 if(ocx <= ev.xmotion.x) 125 if(ocx <= ev.xmotion.x)
126 sticky = (ocy <= ev.xmotion.y) ? TopLeft : BotLeft; 126 sticky = (ocy <= ev.xmotion.y) ? TopLeft : BotLeft;
127 else 127 else
128 sticky = (ocy <= ev.xmotion.y) ? TopRight : BotRight; 128 sticky = (ocy <= ev.xmotion.y) ? TopRight : BotRight;
129 resize(c, True, sticky); 129 resize(c, True, sticky);
201 201
202 ev->value_mask &= ~CWSibling; 202 ev->value_mask &= ~CWSibling;
203 if((c = getclient(ev->window))) { 203 if((c = getclient(ev->window))) {
204 gravitate(c, True); 204 gravitate(c, True);
205 if(ev->value_mask & CWX) 205 if(ev->value_mask & CWX)
206 *c->x = ev->x; 206 c->x = ev->x;
207 if(ev->value_mask & CWY) 207 if(ev->value_mask & CWY)
208 *c->y = ev->y; 208 c->y = ev->y;
209 if(ev->value_mask & CWWidth) 209 if(ev->value_mask & CWWidth)
210 *c->w = ev->width; 210 c->w = ev->width;
211 if(ev->value_mask & CWHeight) 211 if(ev->value_mask & CWHeight)
212 *c->h = ev->height; 212 c->h = ev->height;
213 if(ev->value_mask & CWBorderWidth) 213 if(ev->value_mask & CWBorderWidth)
214 c->border = 1; 214 c->border = 1;
215 gravitate(c, False); 215 gravitate(c, False);
216 resize(c, True, TopLeft); 216 resize(c, True, TopLeft);
217 } 217 }