summaryrefslogtreecommitdiffhomepage
path: root/patch/warp.c
diff options
context:
space:
mode:
Diffstat (limited to 'patch/warp.c')
-rw-r--r--patch/warp.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/patch/warp.c b/patch/warp.c
new file mode 100644
index 0000000..0989de7
--- /dev/null
+++ b/patch/warp.c
@@ -0,0 +1,21 @@
+void
+warp(const Client *c)
+{
+ int x, y;
+
+ if (!c) {
+ XWarpPointer(dpy, None, root, 0, 0, 0, 0, selmon->wx + selmon->ww/2, selmon->wy + selmon->wh/2);
+ return;
+ }
+
+ if (!getrootptr(&x, &y) ||
+ (x > c->x - c->bw &&
+ y > c->y - c->bw &&
+ x < c->x + c->w + c->bw*2 &&
+ y < c->y + c->h + c->bw*2) ||
+ (y > c->mon->by && y < c->mon->by + bh) ||
+ (c->mon->topbar && !y))
+ return;
+
+ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
+} \ No newline at end of file