]> Dogcows Code - chaz/openbox/commitdiff
remove transients of the group from teh window when it leaves the group
authorDana Jansens <danakj@orodu.net>
Tue, 15 Apr 2003 16:53:36 +0000 (16:53 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 15 Apr 2003 16:53:36 +0000 (16:53 +0000)
openbox/client.c

index 879f60c790895d411f6adeab1a69c2ef4550aeb5..5b81cd2262916e8db91c51aa899c6ae64d1cc720 100644 (file)
@@ -1038,8 +1038,17 @@ void client_update_wmhints(Client *self)
         /* 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)
+            if (self->group != NULL) {
                 group_remove(self->group, self);
+
+                /* 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);
+                    }
+            }
             if (hints->window_group != None)
                 self->group = group_add(hints->window_group, self);
 
This page took 0.023974 seconds and 4 git commands to generate.