comparison mouse.c @ 26:e8f627998d6f

simplified several portions of code through replacing rect structs with x,y,h,w counterparts (much more readable)
author Anselm R. Garbe <garbeam@wmii.de>
date Wed, 12 Jul 2006 15:17:22 +0200
parents 4560e0882c1d
children 386649deb651
comparison
equal deleted inserted replaced
25:e238dc4844d7 26:e8f627998d6f
43 old_cx = c->x; 43 old_cx = c->x;
44 old_cy = c->y; 44 old_cy = c->y;
45 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, 45 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
46 None, cursor[CurResize], CurrentTime) != GrabSuccess) 46 None, cursor[CurResize], CurrentTime) != GrabSuccess)
47 return; 47 return;
48 XGrabServer(dpy);
49 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h); 48 XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w, c->h);
50 for(;;) { 49 for(;;) {
51 XMaskEvent(dpy, MouseMask, &ev); 50 XMaskEvent(dpy, MouseMask | ExposureMask, &ev);
52 switch(ev.type) { 51 switch(ev.type) {
53 default: break; 52 default: break;
53 case Expose:
54 handler[Expose](&ev);
55 break;
54 case MotionNotify: 56 case MotionNotify:
55 XUngrabServer(dpy); 57 XFlush(dpy);
56 mmatch(c, old_cx, old_cy, ev.xmotion.x, ev.xmotion.y); 58 mmatch(c, old_cx, old_cy, ev.xmotion.x, ev.xmotion.y);
57 XResizeWindow(dpy, c->win, c->w, c->h); 59 XResizeWindow(dpy, c->win, c->w, c->h);
58 XGrabServer(dpy);
59 break; 60 break;
60 case ButtonRelease: 61 case ButtonRelease:
61 resize(c); 62 resize(c);
62 XUngrabServer(dpy);
63 XUngrabPointer(dpy, CurrentTime); 63 XUngrabPointer(dpy, CurrentTime);
64 return; 64 return;
65 } 65 }
66 } 66 }
67 } 67 }
78 old_cy = c->y; 78 old_cy = c->y;
79 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync, 79 if(XGrabPointer(dpy, root, False, MouseMask, GrabModeAsync, GrabModeAsync,
80 None, cursor[CurMove], CurrentTime) != GrabSuccess) 80 None, cursor[CurMove], CurrentTime) != GrabSuccess)
81 return; 81 return;
82 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui); 82 XQueryPointer(dpy, root, &dummy, &dummy, &x1, &y1, &di, &di, &dui);
83 XGrabServer(dpy);
84 for(;;) { 83 for(;;) {
85 XMaskEvent(dpy, MouseMask, &ev); 84 XMaskEvent(dpy, MouseMask | ExposureMask, &ev);
86 switch (ev.type) { 85 switch (ev.type) {
87 default: break; 86 default: break;
87 case Expose:
88 handler[Expose](&ev);
89 break;
88 case MotionNotify: 90 case MotionNotify:
89 XUngrabServer(dpy); 91 XFlush(dpy);
90 c->x = old_cx + (ev.xmotion.x - x1); 92 c->x = old_cx + (ev.xmotion.x - x1);
91 c->y = old_cy + (ev.xmotion.y - y1); 93 c->y = old_cy + (ev.xmotion.y - y1);
92 XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h); 94 XMoveResizeWindow(dpy, c->win, c->x, c->y, c->w, c->h);
93 XGrabServer(dpy);
94 break; 95 break;
95 case ButtonRelease: 96 case ButtonRelease:
96 resize(c); 97 resize(c);
97 XUngrabServer(dpy);
98 XUngrabPointer(dpy, CurrentTime); 98 XUngrabPointer(dpy, CurrentTime);
99 return; 99 return;
100 } 100 }
101 } 101 }
102 } 102 }