diff --git a/client.c b/client.c index 7790f2349..83fc6a2a0 100644 --- a/client.c +++ b/client.c @@ -367,20 +367,21 @@ client_manage(Window w, XWindowAttributes *wa, int screen) } else move_client_to_screen(c, screen, True); - /* check for transient and set tags like its parent, - * XGetTransientForHint returns 1 on success - */ - if((rettrans = XGetTransientForHint(globalconf.display, w, &trans)) - && (t = client_get_bywin(globalconf.clients, trans))) - for(tag = globalconf.screens[c->screen].tags; tag; tag = tag->next) - if(is_client_tagged(t, tag)) - tag_client(c, tag); - - /* should be floating if transsient or fixed */ - if(!c->isfloating) - client_setfloating(c, rettrans || c->isfixed); } + /* check for transient and set tags like its parent, + * XGetTransientForHint returns 1 on success + */ + if((rettrans = XGetTransientForHint(globalconf.display, w, &trans)) + && (t = client_get_bywin(globalconf.clients, trans))) + for(tag = globalconf.screens[c->screen].tags; tag; tag = tag->next) + if(is_client_tagged(t, tag)) + tag_client(c, tag); + + /* should be floating if transsient or fixed */ + if(!c->isfloating) + client_setfloating(c, rettrans || c->isfixed); + if(!(flags & (USPosition | PPosition))) c->f_geometry = client_get_smart_geometry(c->f_geometry, c->border, c->screen);