support for transients of groups
authorDana Jansens <danakj@orodu.net>
Mon, 7 Apr 2003 08:45:52 +0000 (08:45 +0000)
committerDana Jansens <danakj@orodu.net>
Mon, 7 Apr 2003 08:45:52 +0000 (08:45 +0000)
openbox/client.h
openbox/stacking.c

index 172d4ca..3ab555b 100644 (file)
@@ -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;
index b8194a7..275cd57 100644 (file)
@@ -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 */