From c915078faba41f7fb0884291b647f3429d987ce0 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 16 Apr 2003 01:02:29 +0000 Subject: [PATCH] only change the group info if the group flag is set --- openbox/client.c | 62 +++++++++++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/openbox/client.c b/openbox/client.c index 45ed49c5..18dfe0cf 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -1033,38 +1033,40 @@ void client_update_wmhints(Client *self) if (hints->flags & XUrgencyHint) ur = TRUE; - if (!(hints->flags & WindowGroupHint)) - hints->window_group = None; /* no group */ - /* did the group state change? */ - if (hints->window_group != (self->group ? self->group->leader : None)){ - /* remove from the old group if there was one */ - if (self->group != NULL) { - /* remove transients of the group */ - for (it = self->group->members; it; it = it->next) - if (it->data != self && - ((Client*)it->data)->transient_for == TRAN_GROUP) { - self->transients = g_slist_remove(self->transients, - it->data); - } - group_remove(self->group, self); - self->group = NULL; - } - if (hints->window_group != None) { - self->group = group_add(hints->window_group, self); + if (hints->flags & WindowGroupHint) { + /* did the group state change? */ + if (hints->window_group != + (self->group ? self->group->leader : None)) { + /* remove from the old group if there was one */ + if (self->group != NULL) { + /* remove transients of the group */ + for (it = self->group->members; it; it = it->next) + if (it->data != self && + ((Client*)it->data)->transient_for == TRAN_GROUP) { + self->transients = g_slist_remove(self->transients, + it->data); + } + group_remove(self->group, self); + self->group = NULL; + } + if (hints->window_group != None) { + self->group = group_add(hints->window_group, self); + + /* add other transients of the group that are already + set up */ + for (it = self->group->members; it; it = it->next) + if (it->data != self && + ((Client*)it->data)->transient_for == TRAN_GROUP) + self->transients = g_slist_append(self->transients, + it->data); + } - /* add other transients of the group that are already set up */ - for (it = self->group->members; it; it = it->next) - if (it->data != self && - ((Client*)it->data)->transient_for == TRAN_GROUP) - self->transients = g_slist_append(self->transients, - it->data); + /* 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 */ + client_update_transient_for(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 */ - client_update_transient_for(self); } if (hints->flags & IconPixmapHint) { -- 2.45.2