avoid managing unmanaged parents of transient windows

This commit is contained in:
Sean Pringle
2015-01-02 21:50:51 +10:00
parent 85c0a419d9
commit 0ca8c3d5e1

View File

@@ -182,8 +182,11 @@ void client_place_spot(Client *c, int spot, int mon, int force)
// try to center over our transient parent // try to center over our transient parent
if (!force && c->transient && (t = window_build_client(c->transient))) if (!force && c->transient && (t = window_build_client(c->transient)))
{ {
spot = t->spot; if (t->manage)
mon = t->monitor; {
spot = t->spot;
mon = t->monitor;
}
client_free(t); client_free(t);
} }
else else
@@ -293,7 +296,7 @@ void client_raise_family(Client *c)
for_windows(i, o) if (o->type == atoms[_NET_WM_WINDOW_TYPE_DOCK]) for_windows(i, o) if (o->type == atoms[_NET_WM_WINDOW_TYPE_DOCK])
client_stack_family(o, &raise); client_stack_family(o, &raise);
while (c->transient && (o = window_build_client(c->transient))) while (c->transient && (o = window_build_client(c->transient)) && o->manage)
c = family.clients[family.depth++] = o; c = family.clients[family.depth++] = o;
client_stack_family(c, &raise); client_stack_family(c, &raise);