summaryrefslogtreecommitdiff
path: root/patch/warp.c
diff options
context:
space:
mode:
authorBear <bear@bengtsson.win>2021-12-27 09:29:58 +0000
committerBear <bear@bengtsson.win>2021-12-27 09:29:58 +0000
commit69262b01ced79c2d776fab9b889926d1816a1e7a (patch)
treef304cd6fa8734e83a7772d07dc9b484781565155 /patch/warp.c
Added DWM
Diffstat (limited to 'patch/warp.c')
-rw-r--r--patch/warp.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/patch/warp.c b/patch/warp.c
new file mode 100644
index 0000000..16f1605
--- /dev/null
+++ b/patch/warp.c
@@ -0,0 +1,38 @@
+void
+warp(const Client *c)
+{
+ Monitor *m;
+ Bar *bar;
+ int x, y;
+
+ if (ignore_warp)
+ return;
+
+ 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))
+ return;
+
+ if (!force_warp &&
+ (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))
+ return;
+
+ force_warp = 0;
+
+ for (m = mons; m; m = m->next)
+ for (bar = m->bar; bar; bar = bar->next)
+ if (x > bar->bx &&
+ x < bar->bx + bar->bw &&
+ y > bar->by &&
+ y < bar->by + bar->bh)
+ return;
+
+ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w / 2, c->h / 2);
+}
+