summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-04-16 01:02:29 +0000
committerDana Jansens <danakj@orodu.net>2003-04-16 01:02:29 +0000
commitc915078faba41f7fb0884291b647f3429d987ce0 (patch)
treed4260b32a125b198293c44c2a108cb7c2ff79d3b
parent8c2f20e6721648fa98a38cd8d705f6036a619e8d (diff)
only change the group info if the group flag is set
-rw-r--r--openbox/client.c62
1 files 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) {