Xinqi Bao's Git
2 * (C)opyright MMVI Anselm R. Garbe <garbeam at gmail dot com>
3 * (C)opyright MMVI Kris Maglione <fbsdaemon@gmail.com>
4 * See LICENSE file for license details.
13 #define ButtonMask (ButtonPressMask | ButtonReleaseMask)
14 #define MouseMask (ButtonMask | PointerMotionMask)
17 mmatch(Client
*c
, int x1
, int y1
, int x2
, int y2
)
22 c
->w
-= (c
->w
- c
->basew
) % c
->incw
;
24 c
->h
-= (c
->h
- c
->baseh
) % c
->inch
;
25 if(c
->minw
&& c
->w
< c
->minw
)
27 if(c
->minh
&& c
->h
< c
->minh
)
29 if(c
->maxw
&& c
->w
> c
->maxw
)
31 if(c
->maxh
&& c
->h
> c
->maxh
)
33 c
->x
= (x1
<= x2
) ? x1
: x1
- c
->w
;
34 c
->y
= (y1
<= y2
) ? y1
: y1
- c
->h
;
45 if(XGrabPointer(dpy
, root
, False
, MouseMask
, GrabModeAsync
, GrabModeAsync
,
46 None
, cursor
[CurResize
], CurrentTime
) != GrabSuccess
)
48 XWarpPointer(dpy
, None
, c
->win
, 0, 0, 0, 0, c
->w
, c
->h
);
50 XMaskEvent(dpy
, MouseMask
| ExposureMask
, &ev
);
58 mmatch(c
, old_cx
, old_cy
, ev
.xmotion
.x
, ev
.xmotion
.y
);
59 XResizeWindow(dpy
, c
->win
, c
->w
, c
->h
);
63 XUngrabPointer(dpy
, CurrentTime
);
73 int x1
, y1
, old_cx
, old_cy
, di
;
79 if(XGrabPointer(dpy
, root
, False
, MouseMask
, GrabModeAsync
, GrabModeAsync
,
80 None
, cursor
[CurMove
], CurrentTime
) != GrabSuccess
)
82 XQueryPointer(dpy
, root
, &dummy
, &dummy
, &x1
, &y1
, &di
, &di
, &dui
);
84 XMaskEvent(dpy
, MouseMask
| ExposureMask
, &ev
);
92 c
->x
= old_cx
+ (ev
.xmotion
.x
- x1
);
93 c
->y
= old_cy
+ (ev
.xmotion
.y
- y1
);
94 XMoveResizeWindow(dpy
, c
->win
, c
->x
, c
->y
, c
->w
, c
->h
);
98 XUngrabPointer(dpy
, CurrentTime
);