view: decouple always-on-top windows from the omnipresent state

Before this commit, always-on-{top,bottom} windows were always visible
on all workspaces (omnipresent) because the they were not in
per-workspace trees like normal windows.

This commit fixes this by introducing per-layer trees in
`struct workspace`.

I also added `enum view_layer` and `view->layer` for simplicity.
This commit is contained in:
tokyo4j 2026-02-03 19:18:53 +09:00
parent 55a256f2fa
commit b21daabf77
11 changed files with 75 additions and 90 deletions

View file

@ -16,6 +16,7 @@ struct workspace {
char *name;
struct wlr_scene_tree *tree;
struct wlr_scene_tree *view_trees[3];
struct lab_cosmic_workspace *cosmic_workspace;
struct {