diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-05-07 17:07:35 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-05-07 17:07:35 +0000 |
| commit | edf29cfe733349e3e61de2b4fd9f2a8c1ebec274 (patch) | |
| tree | eb699e2bd0560bab2255f2873ee9721bc2c7c938 | |
| parent | e1081644c1eea458aab0901c76ebc7a112d280d7 (diff) | |
when a window becomes transient for its group, it needs to have group transients removed from itself
| -rw-r--r-- | openbox/client.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/openbox/client.c b/openbox/client.c index 3b66a836..47bfcabc 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -1254,11 +1254,13 @@ static void client_update_transient_tree(ObClient *self, } - /* If the group changed then we need to remove any old group transient - windows from our children. But if we're transient for the group, then + /* If the group changed, or if we are just becoming transient for the + group, then we need to remove any old group transient windows + from our children. But if we were already transient for the group, then other group transients are not our children. */ - if (oldgroup != newgroup && oldgroup != NULL && - oldparent != OB_TRAN_GROUP) + if ((oldgroup != newgroup || + (newparent == OB_TRAN_GROUP && oldparent != newparent)) && + oldgroup != NULL && oldparent != OB_TRAN_GROUP) { for (it = self->transients; it; it = next) { next = g_slist_next(it); |
