+
+ if (c == selected)
+ sel_child = TRUE;
+ else
+ sel_child = client_search_transient(c, selected) != NULL;
+
+ if (!c->modal) {
+ if (!sel_child) {
+ trans = g_list_concat
+ (trans, pick_windows_recur(c, selected, raise));
+ } else {
+ trans_sel = g_list_concat
+ (trans_sel, pick_windows_recur(c, selected, raise));
+ }
+ } else {
+ if (!sel_child) {
+ modals = g_list_concat
+ (modals, pick_windows_recur(c, selected, raise));
+ } else {
+ modal_sel = g_list_concat
+ (modal_sel, pick_windows_recur(c, 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;