mirror of
https://github.com/labwc/labwc.git
synced 2026-02-15 22:05:25 -05:00
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:
parent
155c153658
commit
a2eae22fc2
11 changed files with 85 additions and 96 deletions
|
|
@ -224,17 +224,13 @@ struct server {
|
|||
struct ssd_button *hovered_button;
|
||||
|
||||
/* Tree for all non-layer xdg/xwayland-shell surfaces */
|
||||
struct wlr_scene_tree *view_tree;
|
||||
struct wlr_scene_tree *workspace_tree;
|
||||
|
||||
/*
|
||||
* Popups need to be rendered above always-on-top views, so we reparent
|
||||
* them to this dedicated tree
|
||||
*/
|
||||
struct wlr_scene_tree *xdg_popup_tree;
|
||||
|
||||
/* Tree for all non-layer xdg/xwayland-shell surfaces with always-on-top/below */
|
||||
struct wlr_scene_tree *view_tree_always_on_top;
|
||||
struct wlr_scene_tree *view_tree_always_on_bottom;
|
||||
#if HAVE_XWAYLAND
|
||||
/* Tree for unmanaged xsurfaces without initialized view (usually popups) */
|
||||
struct wlr_scene_tree *unmanaged_tree;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue