diff --git a/src/fetch/client.h b/src/fetch/client.h index c7ae1f2..cf211cc 100644 --- a/src/fetch/client.h +++ b/src/fetch/client.h @@ -83,7 +83,7 @@ setclient_coordinate_center(Client *c, struct wlr_box geom, int offsetx, uint32_t cbw = check_hit_no_border(c) ? c->bw : 0; - if (!c->no_force_center) { + if (!c->no_force_center && m) { tempbox.x = m->w.x + (m->w.width - geom.width) / 2; tempbox.y = m->w.y + (m->w.height - geom.height) / 2; } else { diff --git a/src/layout/arrange.h b/src/layout/arrange.h index 25a057b..afc8c4b 100644 --- a/src/layout/arrange.h +++ b/src/layout/arrange.h @@ -1,6 +1,10 @@ void set_size_per(Monitor *m, Client *c) { Client *fc = NULL; bool found = false; + + if (!m || !c) + return; + wl_list_for_each(fc, &clients, link) { if (VISIBLEON(fc, m) && ISTILED(fc) && fc != c) { c->master_mfact_per = fc->master_mfact_per; diff --git a/src/mango.c b/src/mango.c index 1aea231..2c7e875 100644 --- a/src/mango.c +++ b/src/mango.c @@ -1353,7 +1353,8 @@ void applyrules(Client *c) { } } - set_size_per(mon, c); + if (mon) + set_size_per(mon, c); // if no geom rule hit and is normal winodw, use the center pos and record // the hit size