X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fstacking.c;h=4b01f45dbde00c159fc17cb7e7e7d40c5972b91e;hb=2b135c53565547779719348ec3164311be8191fe;hp=b6e81dbf5e3adce2eb53b29bcf60037cd76b8302;hpb=83d6c3a8c71b12aa1cf88ea5431caa743ffe0891;p=chaz%2Fopenbox diff --git a/openbox/stacking.c b/openbox/stacking.c index b6e81dbf..4b01f45d 100644 --- a/openbox/stacking.c +++ b/openbox/stacking.c @@ -169,7 +169,7 @@ static void restack_windows(ObClient *selected, gboolean raise) GList *modals = NULL; GList *trans = NULL; - if (!raise && selected->transient_for) { + if (!raise && selected->parents) { GSList *top, *top_it; GSList *top_reorder = NULL; @@ -233,7 +233,7 @@ static void restack_windows(ObClient *selected, gboolean raise) wins = g_list_append(wins, selected); /* if selected window is transient for group then raise it above others */ - if (selected->transient_for == OB_TRAN_GROUP) { + if (selected->transient_for_group) { /* if it's modal, raise it above those also */ if (selected->modal) { wins = g_list_concat(wins, group_modals); @@ -371,7 +371,7 @@ static GList *find_highest_relative(ObClient *client) { GList *ret = NULL; - if (client->transient_for) { + if (client->parents) { GList *it; GSList *top; @@ -382,8 +382,14 @@ static GList *find_highest_relative(ObClient *client) for (it = stacking_list; !ret && it; it = g_list_next(it)) { if (WINDOW_IS_CLIENT(it->data)) { ObClient *c = it->data; - /* only look at windows in the same layer */ - if (c->layer == client->layer) { + /* only look at windows in the same layer and that are + visible */ + if (c->layer == client->layer && + !c->iconic && + (c->desktop == client->desktop || + c->desktop == DESKTOP_ALL || + client->desktop == DESKTOP_ALL)) + { GSList *sit; /* go through each top level parent and see it this window