summaryrefslogtreecommitdiff
path: root/openbox/stacking.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-05-18 17:09:55 +0000
committerDana Jansens <danakj@orodu.net>2003-05-18 17:09:55 +0000
commit993fc6226d06f25513756251283e70054082ee8a (patch)
treedb6eedc7e86eac7999a26cef8a7bd1be50907a67 /openbox/stacking.c
parent3c7bf77dd9a14f93a63f9d790c1bdcf79b63eb39 (diff)
2 in 1 deal :\
client.c stacking.c: fixing looping transient case for group transient windows. now a window which is transient for a group is *not* transient for any other transient windows in the group (perviously the other window had to be transient for the group to be excluded, now it can be transient for anything). client.c/h event.c render.c/h: adjustnig icon handling a bit. will be converting the legacy pixmap icons into rgba data so they can be handled the same as netwm icons.
Diffstat (limited to 'openbox/stacking.c')
-rw-r--r--openbox/stacking.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/openbox/stacking.c b/openbox/stacking.c
index eac4025c..e205d4b0 100644
--- a/openbox/stacking.c
+++ b/openbox/stacking.c
@@ -120,13 +120,11 @@ void stacking_raise(ObWindow *window)
} else {
GSList *it;
- /* the check for TRAN_GROUP is to prevent an infinate loop with
- 2 transients of the same group at the head of the group's
- members list */
for (it = client->group->members; it; it = it->next) {
Client *c = it->data;
- if (c != client && c->transient_for != TRAN_GROUP)
+ /* checking transient_for prevents infinate loops! */
+ if (c != client && !c->transient_for)
stacking_raise(it->data);
}
if (it == NULL) return;
@@ -183,13 +181,11 @@ void stacking_lower(ObWindow *window)
} else {
GSList *it;
- /* the check for TRAN_GROUP is to prevent an infinate loop with
- 2 transients of the same group at the head of the group's
- members list */
for (it = client->group->members; it; it = it->next) {
Client *c = it->data;
- if (c != client && c->transient_for != TRAN_GROUP)
+ /* checking transient_for prevents infinate loops! */
+ if (c != client && !c->transient_for)
stacking_lower(it->data);
}
if (it == NULL) return;
@@ -228,15 +224,12 @@ void stacking_add_nonintrusive(ObWindow *win)
GSList *sit;
GList *it;
- /* the check for TRAN_GROUP is to prevent an infinate loop with
- 2 transients of the same group at the head of the group's
- members list */
for (it = stacking_list; !parent && it; it = it->next) {
for (sit = client->group->members; !parent && sit;
sit = sit->next) {
Client *c = sit->data;
- if (sit->data == it->data &&
- c->transient_for != TRAN_GROUP)
+ /* checking transient_for prevents infinate loops! */
+ if (sit->data == it->data && !c->transient_for)
parent = it->data;
}
}