}
}
-static void restack_windows(ObClient *selected, gboolean raise, gboolean group)
+static void restack_windows(ObClient *selected, gboolean raise)
{
GList *it, *last, *below, *above, *next;
GList *wins = NULL;
/* call restack for each of these to lower them */
for (top_it = top_reorder; top_it; top_it = g_slist_next(top_it))
- restack_windows(top_it->data, raise, group);
+ restack_windows(top_it->data, raise);
return;
}
stacking_list = g_list_delete_link(stacking_list, it);
/* go from the bottom of the stacking list up */
- for (it = g_list_last(stacking_list); it; it = g_list_previous(it)) {
+ for (it = g_list_last(stacking_list); it; it = next) {
+ next = g_list_previous(it);
+
if (WINDOW_IS_CLIENT(it->data)) {
ObClient *ch = it->data;
last = NULL;
for (it = g_list_last(stacking_list); it; it = g_list_previous(it))
{
- if (window_layer(it->data) < selected->layer)
+ if (window_layer(it->data) < selected->layer) {
+ last = it;
continue;
+ }
/* if lowering, stop at the beginning of the layer */
if (!raise)
break;
g_list_free(wins);
}
-void stacking_raise(ObWindow *window, gboolean group)
+void stacking_raise(ObWindow *window)
{
if (WINDOW_IS_CLIENT(window)) {
ObClient *selected;
selected = WINDOW_AS_CLIENT(window);
- restack_windows(selected, TRUE, group);
+ restack_windows(selected, TRUE);
} else {
GList *wins;
wins = g_list_append(NULL, window);
}
}
-void stacking_lower(ObWindow *window, gboolean group)
+void stacking_lower(ObWindow *window)
{
if (WINDOW_IS_CLIENT(window)) {
ObClient *selected;
selected = WINDOW_AS_CLIENT(window);
- restack_windows(selected, FALSE, group);
+ restack_windows(selected, FALSE);
} else {
GList *wins;
wins = g_list_append(NULL, window);
future */
stacking_list = g_list_append(stacking_list, win);
- stacking_raise(win, FALSE);
+ stacking_raise(win);
}
void stacking_add_nonintrusive(ObWindow *win)