move windows to back of cycle when they are minimized

This commit is contained in:
bi4k8 2021-12-03 02:36:38 +00:00 committed by ARDiDo
parent b7d4df28c8
commit 7b7178ebfa
3 changed files with 14 additions and 0 deletions

View file

@ -170,6 +170,18 @@ desktop_cycle_view(struct server *server, struct view *current, enum lab_cycle_d
return view;
}
void
desktop_move_view_to_end_of_cycle(struct view *to_end) {
wl_list_remove(&to_end->link);
struct view *view;
wl_list_for_each_reverse (view, &to_end->server->views, link) {
wl_list_insert(&view->link, &to_end->link);
return;
}
/* if the foreach did not return, this window was the only one in the list, so just reinsert it at the start */
wl_list_insert(&to_end->server->views, &to_end->link);
}
static bool
has_mapped_view(struct wl_list *wl_list)
{

View file

@ -79,6 +79,7 @@ view_minimize(struct view *view, bool minimized)
view->minimized = minimized;
if (minimized) {
view->impl->unmap(view);
desktop_move_view_to_end_of_cycle(view);
} else {
view->impl->map(view);
}