client_update_wmhints(self);
/* this may have already been called from client_update_wmhints */
- if (self->transient && self->transient_for == NULL)
+ if (self->transient_for == NULL)
client_update_transient_for(self);
client_get_startup_id(self);
client_get_desktop(self);/* uses transient data/group/startup id if a
}
}
}
- } else if (self->group) {
- if (self->type == OB_CLIENT_TYPE_DIALOG ||
- self->type == OB_CLIENT_TYPE_TOOLBAR ||
- self->type == OB_CLIENT_TYPE_MENU ||
- self->type == OB_CLIENT_TYPE_UTILITY)
- {
- self->transient = TRUE;
+ } else if (self->type == OB_CLIENT_TYPE_DIALOG ||
+ self->type == OB_CLIENT_TYPE_TOOLBAR ||
+ self->type == OB_CLIENT_TYPE_MENU ||
+ self->type == OB_CLIENT_TYPE_UTILITY)
+ {
+ self->transient = TRUE;
+ if (self->group)
target = OB_TRAN_GROUP;
- }
} else
self->transient = FALSE;
!client_is_direct_child(self, newparent))
newparent->transients = g_slist_append(newparent->transients, self);
- /* If the group changed then we need to add any old group transient
+ /* If the group changed then we need to add any new group transient
windows to our children. But if we're transient for the group, then
other group transients are not our children.
void client_update_wmhints(ObClient *self)
{
XWMHints *hints;
- GSList *it;
/* assume a window takes input if it doesnt specify */
self->can_focus = TRUE;
*/
if (self->transient &&
((self->transient_for == NULL && oldgroup == NULL) ||
- self->transient_for == OB_TRAN_GROUP && self->group == NULL))
+ (self->transient_for == OB_TRAN_GROUP && !self->group)))
client_update_transient_for(self);
}
event_halt_focus_delay();
if (client_normal(self) && screen_showing_desktop)
- screen_show_desktop(FALSE);
+ screen_show_desktop(FALSE, FALSE);
if (self->iconic)
client_iconify(self, FALSE, here);
if (self->desktop != DESKTOP_ALL &&