summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-04-07 08:45:52 +0000
committerDana Jansens <danakj@orodu.net>2003-04-07 08:45:52 +0000
commita25b19a17f6bffdb7549651ac2e70445eb6eef1b (patch)
treed4d688981db38e72d30d0b18d16a9834fbc8ed14
parente6cc69ca04f6b275f56e1e0feef731518e0709a3 (diff)
support for transients of groups
-rw-r--r--openbox/client.h6
-rw-r--r--openbox/stacking.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/openbox/client.h b/openbox/client.h
index 172d4caf..3ab555b0 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -123,7 +123,11 @@ typedef struct Client {
be TRUE if transient_for != NULL, but not guaranteed to be FALSE if
transient_for == NULL. */
gboolean transient;
- /*! The client which this client is a transient (child) for */
+ /*! The client which this client is a transient (child) for.
+ A value of TRAN_GROUP signifies that the window is a transient for all
+ members of its Group, and is not a valid pointer to be followed in this
+ case.
+ */
struct Client *transient_for;
/*! The clients which are transients (children) of this client */
GSList *transients;
diff --git a/openbox/stacking.c b/openbox/stacking.c
index b8194a78..275cd572 100644
--- a/openbox/stacking.c
+++ b/openbox/stacking.c
@@ -94,6 +94,8 @@ void stacking_lower(Client *client)
GSList *sit;
Client *c = it->data;
+ if (it->data == client) continue;
+
for (sit = c->group->members; sit; sit = sit->next)
if (sit->data == it->data) break;
if (sit) break; /* got it */