summaryrefslogtreecommitdiff
path: root/dwm/dwm.c
diff options
context:
space:
mode:
Diffstat (limited to 'dwm/dwm.c')
-rw-r--r--dwm/dwm.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/dwm/dwm.c b/dwm/dwm.c
index f265f18..1d9273e 100644
--- a/dwm/dwm.c
+++ b/dwm/dwm.c
@@ -1216,6 +1216,8 @@ focusmon(const Arg *arg)
unfocus(selmon->sel, 0);
selmon = m;
focus(NULL);
+ if (selmon->sel)
+ XWarpPointer(dpy, None, selmon->sel->win, 0, 0, 0, 0, selmon->sel->w/2, selmon->sel->h/2);
}
void
@@ -1232,6 +1234,7 @@ focusstack(const Arg *arg)
;
focus(c ? c : p);
restack(selmon);
+ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w/2, c->h/2);
}
Atom getatomprop(Client *c, Atom prop)
@@ -1607,6 +1610,8 @@ manage(Window w, XWindowAttributes *wa)
if (term)
swallow(term, c);
arrange(c->mon);
+ if (c && c->mon == selmon)
+ XWarpPointer(dpy, None, c->win, 0, 0, 0, 0, c->w/2, c->h/2);
focus(NULL);
}
@@ -2646,6 +2651,9 @@ unmanage(Client *c, int destroyed)
arrange(m);
focus(NULL);
updateclientlist();
+ if (m == selmon && m->sel)
+ XWarpPointer(dpy, None, m->sel->win, 0, 0, 0, 0,
+ m->sel->w/2, m->sel->h/2);
}
}