diff options
Diffstat (limited to 'dwl.c')
| -rw-r--r-- | dwl.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -571,6 +571,12 @@ applyrules(Client *c) if (p) swallow(c, p); } + + /* Center floating windows on their monitor */ + if (mon) { + c->geom.x = (mon->w.width - c->geom.width) / 2 + mon->m.x; + c->geom.y = (mon->w.height - c->geom.height) / 2 + mon->m.y; + } setmon(c, mon, newtags); } @@ -2166,6 +2172,10 @@ mapnotify(struct wl_listener *listener, void *data) * If there is no parent, apply rules */ if ((p = client_get_parent(c))) { c->isfloating = 1; + if (p->mon) { + c->geom.x = (p->mon->w.width - c->geom.width) / 2 + p->mon->m.x; + c->geom.y = (p->mon->w.height - c->geom.height) / 2 + p->mon->m.y; + } setmon(c, p->mon, p->tags); } else { applyrules(c); |
