X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fstacking.c;h=2280b87735a079b15329db1875ae433cbed05855;hb=bfb0c916718cd6f68ef100841a625b06602f616b;hp=fe3d26d35e4e63f0e5c9403fecb34bbbe5395d41;hpb=51fdd13fd1a445d5fa3c2d7aab356e7caaf2f902;p=chaz%2Fopenbox diff --git a/openbox/stacking.c b/openbox/stacking.c index fe3d26d3..2280b877 100644 --- a/openbox/stacking.c +++ b/openbox/stacking.c @@ -366,7 +366,7 @@ void stacking_add(ObWindow *win) } static GList *find_highest_relative(ObClient *client) -{ +{ GList *ret = NULL; if (client->parents) { @@ -383,7 +383,7 @@ static GList *find_highest_relative(ObClient *client) /* only look at windows in the same layer and that are visible */ if (c->layer == client->layer && - !c->iconic && + !c->iconic && (c->desktop == client->desktop || c->desktop == DESKTOP_ALL || client->desktop == DESKTOP_ALL)) @@ -492,7 +492,8 @@ static gboolean stacking_occluded(ObClient *client, ObClient *sibling) ObClient *c = it->data; if (found && !c->iconic && (c->desktop == DESKTOP_ALL || client->desktop == DESKTOP_ALL || - c->desktop == client->desktop)) + c->desktop == client->desktop) && + !client_search_transient(client, c)) { if (RECT_INTERSECTS_RECT(c->frame->area, client->frame->area)) { @@ -534,7 +535,8 @@ static gboolean stacking_occludes(ObClient *client, ObClient *sibling) ObClient *c = it->data; if (found && !c->iconic && (c->desktop == DESKTOP_ALL || client->desktop == DESKTOP_ALL || - c->desktop == client->desktop)) + c->desktop == client->desktop) && + !client_search_transient(c, client)) { if (RECT_INTERSECTS_RECT(c->frame->area, client->frame->area)) { @@ -559,7 +561,7 @@ static gboolean stacking_occludes(ObClient *client, ObClient *sibling) } gboolean stacking_restack_request(ObClient *client, ObClient *sibling, - gint detail, gboolean activate) + gint detail) { gboolean ret = FALSE; @@ -595,24 +597,14 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling, case Above: ob_debug("Restack request Above for client %s sibling %s\n", client->title, sibling ? sibling->title : "(all)"); - if (activate && !client->iconic && client_normal(client)) - /* use user=TRUE because it is impossible to get a timestamp - for this */ - client_activate(client, FALSE, TRUE); - else - stacking_raise(CLIENT_AS_WINDOW(client)); + stacking_raise(CLIENT_AS_WINDOW(client)); ret = TRUE; break; case TopIf: ob_debug("Restack request TopIf for client %s sibling %s\n", client->title, sibling ? sibling->title : "(all)"); if (stacking_occluded(client, sibling)) { - if (activate && !client->iconic && client_normal(client)) - /* use user=TRUE because it is impossible to get a timestamp - for this */ - client_activate(client, FALSE, TRUE); - else - stacking_raise(CLIENT_AS_WINDOW(client)); + stacking_raise(CLIENT_AS_WINDOW(client)); ret = TRUE; } break; @@ -621,12 +613,7 @@ gboolean stacking_restack_request(ObClient *client, ObClient *sibling, "%s\n", client->title, sibling ? sibling->title : "(all)"); if (stacking_occluded(client, sibling)) { - if (activate && !client->iconic && client_normal(client)) - /* use user=TRUE because it is impossible to get a timestamp - for this */ - client_activate(client, FALSE, TRUE); - else - stacking_raise(CLIENT_AS_WINDOW(client)); + stacking_raise(CLIENT_AS_WINDOW(client)); ret = TRUE; } else if (stacking_occludes(client, sibling)) {