GList *modals = NULL;
GList *trans = NULL;
- if (!raise && selected->transient_for) {
+ if (!raise && selected->parents) {
GSList *top, *top_it;
GSList *top_reorder = NULL;
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);
{
GList *ret = NULL;
- if (client->transient_for) {
+ if (client->parents) {
GList *it;
GSList *top;
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