summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/client.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/openbox/client.c b/openbox/client.c
index d1d235ce..879f60c7 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -1015,6 +1015,7 @@ void client_update_wmhints(Client *self)
{
XWMHints *hints;
gboolean ur = FALSE;
+ GSList *it;
/* assume a window takes input if it doesnt specify */
self->can_focus = TRUE;
@@ -1042,6 +1043,13 @@ void client_update_wmhints(Client *self)
if (hints->window_group != None)
self->group = group_add(hints->window_group, self);
+ /* add other transients of the group that are already set up */
+ for (it = self->group->members; it; it = it->next)
+ if (it->data != self &&
+ ((Client*)it->data)->transient_for == TRAN_GROUP)
+ self->transients = g_slist_append(self->transients,
+ it->data);
+
/* because the self->transient flag wont change from this call,
we don't need to update the window's type and such, only its
transient_for, and the transients lists of other windows in the