X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fstacking.c;h=3a556fc4abb24f71a78efb3a856f366a0b798b8e;hb=120623d34e0cb86b4970e9744a10ba39cd5e21b7;hp=9309ee048c36414019b968b1fd7333f2a3da1a56;hpb=38d3cad2493694e5441c64d92a40eadfe8b5327e;p=chaz%2Fopenbox diff --git a/openbox/stacking.c b/openbox/stacking.c index 9309ee04..3a556fc4 100644 --- a/openbox/stacking.c +++ b/openbox/stacking.c @@ -18,7 +18,7 @@ void stacking_set_list() /* on shutdown, don't update the properties, so that we can read it back in on startup and re-stack the windows as they were before we shut down */ - if (ob_state == State_Exiting) return; + if (ob_state == OB_STATE_EXITING) return; /* create an array of the window ids (from bottom to top, reverse order!) */ @@ -82,22 +82,22 @@ static void do_restack(GList *wins, GList *before) static void do_raise(GList *wins) { GList *it; - GList *layer[NUM_STACKLAYER] = {NULL}; + GList *layer[OB_NUM_STACKING_LAYERS] = {NULL}; int i; for (it = wins; it; it = g_list_next(it)) { - StackLayer l; + ObStackingLayer l; l = window_layer(it->data); layer[l] = g_list_append(layer[l], it->data); } it = stacking_list; - for (i = NUM_STACKLAYER - 1; i >= 0; --i) { + for (i = OB_NUM_STACKING_LAYERS - 1; i >= 0; --i) { if (layer[i]) { for (; it; it = g_list_next(it)) { /* look for the top of the layer */ - if (window_layer(it->data) <= (StackLayer) i) + if (window_layer(it->data) <= (ObStackingLayer) i) break; } do_restack(layer[i], it); @@ -109,22 +109,22 @@ static void do_raise(GList *wins) static void do_lower(GList *wins) { GList *it; - GList *layer[NUM_STACKLAYER] = {NULL}; + GList *layer[OB_NUM_STACKING_LAYERS] = {NULL}; int i; for (it = wins; it; it = g_list_next(it)) { - StackLayer l; + ObStackingLayer l; l = window_layer(it->data); layer[l] = g_list_append(layer[l], it->data); } it = stacking_list; - for (i = NUM_STACKLAYER - 1; i >= 0; --i) { + for (i = OB_NUM_STACKING_LAYERS - 1; i >= 0; --i) { if (layer[i]) { for (; it; it = g_list_next(it)) { /* look for the top of the next layer down */ - if (window_layer(it->data) < (StackLayer) i) + if (window_layer(it->data) < (ObStackingLayer) i) break; } do_restack(layer[i], it); @@ -133,7 +133,7 @@ static void do_lower(GList *wins) } } -static GList *pick_windows(Client *top, Client *selected, gboolean raise) +static GList *pick_windows(ObClient *top, ObClient *selected, gboolean raise) { GList *ret = NULL; GList *it, *next, *prev; @@ -154,7 +154,7 @@ static GList *pick_windows(Client *top, Client *selected, gboolean raise) next = g_list_next(it); if ((sit = g_slist_find(top->transients, it->data))) { - Client *c = sit->data; + ObClient *c = sit->data; ++i; @@ -196,10 +196,10 @@ static GList *pick_windows(Client *top, Client *selected, gboolean raise) return ret; } -static GList *pick_group_windows(Client *top, Client *selected, gboolean raise) +static GList *pick_group_windows(ObClient *top, ObClient *selected, gboolean raise) { GList *ret = NULL; - GList *it, *next; + GList *it, *next, *prev; GSList *sit; int i, n; @@ -208,12 +208,16 @@ static GList *pick_group_windows(Client *top, Client *selected, gboolean raise) i = 0; n = g_slist_length(top->group->members) - 1; for (it = stacking_list; i < n && it; it = next) { + prev = g_list_previous(it); next = g_list_next(it); + if ((sit = g_slist_find(top->group->members, it->data))) { ++i; - ret = g_list_concat(ret, pick_windows(sit->data, - selected, raise)); - it = stacking_list; + ret = g_list_concat(ret, + pick_windows(sit->data, selected, raise)); + /* if we dont have a prev then start back at the beginning, + otherwise skip back to the prev's next */ + next = prev ? g_list_next(prev) : stacking_list; } } } @@ -225,8 +229,8 @@ void stacking_raise(ObWindow *window) GList *wins; if (WINDOW_IS_CLIENT(window)) { - Client *c; - Client *selected; + ObClient *c; + ObClient *selected; selected = WINDOW_AS_CLIENT(window); c = client_search_top_transient(selected); wins = pick_windows(c, selected, TRUE); @@ -244,8 +248,8 @@ void stacking_lower(ObWindow *window) GList *wins; if (WINDOW_IS_CLIENT(window)) { - Client *c; - Client *selected; + ObClient *c; + ObClient *selected; selected = WINDOW_AS_CLIENT(window); c = client_search_top_transient(selected); wins = pick_windows(c, selected, FALSE); @@ -260,7 +264,7 @@ void stacking_lower(ObWindow *window) void stacking_add(ObWindow *win) { - StackLayer l; + ObStackingLayer l; GList *wins; g_assert(focus_backup != None); /* make sure I dont break this in the @@ -275,8 +279,8 @@ void stacking_add(ObWindow *win) void stacking_add_nonintrusive(ObWindow *win) { - Client *client; - Client *parent = NULL; + ObClient *client; + ObClient *parent = NULL; GList *it_before = NULL; if (!WINDOW_IS_CLIENT(win)) { @@ -288,7 +292,7 @@ void stacking_add_nonintrusive(ObWindow *win) /* insert above its highest parent */ if (client->transient_for) { - if (client->transient_for != TRAN_GROUP) { + if (client->transient_for != OB_TRAN_GROUP) { parent = client->transient_for; } else { GSList *sit; @@ -299,7 +303,7 @@ void stacking_add_nonintrusive(ObWindow *win) if ((sit = g_slist_find(client->group->members, it->data))) for (sit = client->group->members; !parent && sit; sit = sit->next) { - Client *c = sit->data; + ObClient *c = sit->data; /* checking transient_for prevents infinate loops! */ if (sit->data == it->data && !c->transient_for) parent = it->data;