X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fstacking.c;h=b23e6eac1ca4f0f4b4a542e2b6fae49d073b84fd;hb=556eb7b7fb20b3b0db03b6d92259ad3bb16dccde;hp=baf75198123d3a7f0c158aad11013084a8b72ac0;hpb=24a489e8e58333d381533c77a4e0d869e0293fa4;p=chaz%2Fopenbox diff --git a/openbox/stacking.c b/openbox/stacking.c index baf75198..b23e6eac 100644 --- a/openbox/stacking.c +++ b/openbox/stacking.c @@ -29,7 +29,7 @@ GList *stacking_list = NULL; -void stacking_set_list() +void stacking_set_list(void) { Window *windows = NULL; GList *it; @@ -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)) @@ -411,6 +411,7 @@ void stacking_add_nonintrusive(ObWindow *win) ObClient *client; GList *it_below = NULL; /* this client will be below us */ GList *it_above; + GList *wins; if (!WINDOW_IS_CLIENT(win)) { stacking_add(win); /* no special rules for others */ @@ -468,7 +469,7 @@ void stacking_add_nonintrusive(ObWindow *win) break; } - GList *wins = g_list_append(NULL, win); + wins = g_list_append(NULL, win); do_restack(wins, it_below); g_list_free(wins); } @@ -492,7 +493,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 +536,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)) {