mirror of
https://git.sr.ht/~coasteen/dotfiles
synced 2026-02-06 15:13:45 +01:00
47 lines
803 B
C
47 lines
803 B
C
|
|
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 BANISH_PATCH
|
||
|
|
if (cursor_hidden) {
|
||
|
|
mouse_x = c->x + c->w/2;
|
||
|
|
mouse_y = c->y + c->h/2;
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
#endif // BANISH_PATCH
|
||
|
|
|
||
|
|
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);
|
||
|
|
}
|
||
|
|
|