X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fclient.c;h=3ebcc69ae8f568a0d6c5deafb129b464f8763ec8;hb=fde5ca09e9ea7ab08b6dc06723f19bad6d03af22;hp=1714e29c7da7950958bb5f0a42cdef02393900ce;hpb=0c15af505fb5bcd5e906e0146f82038b51f73307;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index 1714e29c..3ebcc69a 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -931,7 +931,7 @@ static void client_get_all(ObClient *self) 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 @@ -1179,15 +1179,14 @@ void client_update_transient_for(ObClient *self) } } } - } 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; @@ -1281,7 +1280,7 @@ static void client_update_transient_tree(ObClient *self, !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. @@ -3262,7 +3261,7 @@ void client_activate(ObClient *self, gboolean here, gboolean user) 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 &&