all repos — openbox @ 416b9d5f5f53468f954abbdffbc40003032c7f9a

openbox fork - make it a bit more like ryudo

speed up pick_group_windows too
Dana Jansens danakj@orodu.net
commit

416b9d5f5f53468f954abbdffbc40003032c7f9a

parent

38d3cad2493694e5441c64d92a40eadfe8b5327e

1 files changed, 8 insertions(+), 4 deletions(-)

jump to
M openbox/stacking.copenbox/stacking.c

@@ -199,7 +199,7 @@

static GList *pick_group_windows(Client *top, Client *selected, gboolean raise) { GList *ret = NULL; - GList *it, *next; + GList *it, *next, *prev; GSList *sit; int i, n;

@@ -208,12 +208,16 @@ if (top->group) {

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; } } }