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

@@ -181,9 +181,12 @@ 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)))
{
if (t->manage)
{ {
spot = t->spot; spot = t->spot;
mon = t->monitor; 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);