+ if (!(it_before = g_list_find(stacking_list, parent))) {
+ /* no parent to put above, try find the focused client to go
+ under */
+ if ((it_before = g_list_find(stacking_list, focus_client)))
+ it_before = it_before->next;
+ else {
+ /* out of ideas, just add it normally... */
+ stacking_add(win);
+ return;
+ }
+ }
+ stacking_list = g_list_insert_before(stacking_list, it_before, win);
+
+ it_before = g_list_find(stacking_list, win)->prev;
+ if (!it_before)
+ wins[0] = focus_backup;
+ else
+ wins[0] = window_top(it_before->data);
+ wins[1] = window_top(win);
+
+ XRestackWindows(ob_display, wins, 2);
+ }