when a window becomes transient for its group, it needs to have group transients removed from itself

This commit is contained in:
Dana Jansens 2007-05-07 17:07:35 +00:00
parent e1081644c1
commit edf29cfe73

View file

@ -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);