You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
671 B
38 lines
671 B
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); |
|
} |
|
|
|
|