group transients werent getting added to their parents

This commit is contained in:
Dana Jansens 2007-05-04 16:14:16 +00:00
parent d0bbfb66d3
commit 15ec358151

View file

@ -1657,32 +1657,32 @@ void client_update_wmhints(ObClient *self)
self->group = NULL; 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, /* because the self->transient flag wont change from this call,
we don't need to update the window's type and such, only its we don't need to update the window's type and such, only its
transient_for, and the transients lists of other windows in transient_for
the group may be affected
do this before adding transients from the group so we know if do this before adding transients from the group so we know if
we are actually transient for the group or not. we are actually transient for the group or not.
*/ */
client_update_transient_for(self); client_update_transient_for(self);
if (hints->window_group != None) { /* i can only have transients from the group if i am not
self->group = group_add(hints->window_group, self); transient for the group myself */
if (self->group && (self->transient_for == NULL ||
/* i can only have transients from the group if i am not self->transient_for != OB_TRAN_GROUP))
transient for the group myself */ {
if (self->transient_for != OB_TRAN_GROUP) { /* add other transients of the group that are already
/* add other transients of the group that are already set up */
set up */ for (it = self->group->members; it; it = g_slist_next(it))
for (it = self->group->members; it; {
it = g_slist_next(it)) ObClient *c = it->data;
{ if (c != self && c->transient_for == OB_TRAN_GROUP)
ObClient *c = it->data; self->transients = g_slist_append(self->transients, c);
if (c != self && c->transient_for == OB_TRAN_GROUP)
self->transients =
g_slist_append(self->transients, c);
}
} }
} }
} }