group transients werent getting added to their parents
Dana Jansens danakj@orodu.net
1 files changed,
18 insertions(+),
18 deletions(-)
jump to
M
openbox/client.c
→
openbox/client.c
@@ -1657,32 +1657,32 @@ group_remove(self->group, self);
self->group = NULL; } + /* add ourself to the group */ + if (hints->window_group != None) + self->group = group_add(hints->window_group, self); + + /* because the self->transient flag wont change from this call, we don't need to update the window's type and such, only its - transient_for, and the transients lists of other windows in - the group may be affected + transient_for do this before adding transients from the group so we know if we are actually transient for the group or not. */ client_update_transient_for(self); - if (hints->window_group != None) { - self->group = group_add(hints->window_group, self); - - /* i can only have transients from the group if i am not - transient for the group myself */ - if (self->transient_for != OB_TRAN_GROUP) { - /* add other transients of the group that are already - set up */ - for (it = self->group->members; it; - it = g_slist_next(it)) - { - ObClient *c = it->data; - if (c != self && c->transient_for == OB_TRAN_GROUP) - self->transients = - g_slist_append(self->transients, c); - } + /* i can only have transients from the group if i am not + transient for the group myself */ + if (self->group && (self->transient_for == NULL || + self->transient_for != OB_TRAN_GROUP)) + { + /* add other transients of the group that are already + set up */ + for (it = self->group->members; it; it = g_slist_next(it)) + { + ObClient *c = it->data; + if (c != self && c->transient_for == OB_TRAN_GROUP) + self->transients = g_slist_append(self->transients, c); } } }