Mercurial > dwm-meillo
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 } |