mirror of
https://github.com/labwc/labwc.git
synced 2026-02-05 04:06:33 -05:00
cycle: add server->cycle_preview_tree
This doesn't change any behaviors.
This commit is contained in:
parent
dfe428ae14
commit
8ad96c0410
3 changed files with 21 additions and 22 deletions
|
|
@ -238,6 +238,7 @@ struct server {
|
|||
/* Tree for unmanaged xsurfaces without initialized view (usually popups) */
|
||||
struct wlr_scene_tree *unmanaged_tree;
|
||||
#endif
|
||||
struct wlr_scene_tree *cycle_preview_tree;
|
||||
/* Tree for built in menu */
|
||||
struct wlr_scene_tree *menu_tree;
|
||||
|
||||
|
|
|
|||
|
|
@ -40,7 +40,8 @@ update_preview_outlines(struct view *view)
|
|||
.border_width = theme->osd_window_switcher_preview_border_width,
|
||||
};
|
||||
rect = lab_scene_rect_create(&server->scene->tree, &opts);
|
||||
wlr_scene_node_place_above(&rect->tree->node, &server->menu_tree->node);
|
||||
wlr_scene_node_place_above(&rect->tree->node,
|
||||
&server->cycle_preview_tree->node);
|
||||
server->cycle.preview_outline = rect;
|
||||
}
|
||||
|
||||
|
|
@ -245,13 +246,8 @@ preview_selected_view(struct view *view)
|
|||
cycle->preview_was_shaded = true;
|
||||
}
|
||||
|
||||
/*
|
||||
* FIXME: This abuses an implementation detail of the always-on-top tree.
|
||||
* Create a permanent server->osd_preview_tree instead that can
|
||||
* also be used as parent for the preview outlines.
|
||||
*/
|
||||
wlr_scene_node_reparent(cycle->preview_node,
|
||||
view->server->view_tree_always_on_top);
|
||||
view->server->cycle_preview_tree);
|
||||
|
||||
/* Finally raise selected node to the top */
|
||||
wlr_scene_node_raise_to_top(cycle->preview_node);
|
||||
|
|
|
|||
32
src/server.c
32
src/server.c
|
|
@ -564,21 +564,22 @@ server_init(struct server *server)
|
|||
* z-order for nodes which cover the whole work-area. For per-output
|
||||
* scene-trees, see handle_new_output() in src/output.c
|
||||
*
|
||||
* | Type | Scene Tree | Per Output | Example
|
||||
* | ------------------- | ---------------- | ---------- | -------
|
||||
* | ext-session | lock-screen | Yes | swaylock
|
||||
* | window switcher OSD | cycle_osd_tree | Yes |
|
||||
* | compositor-menu | menu_tree | No | root-menu
|
||||
* | layer-shell | layer-popups | Yes |
|
||||
* | layer-shell | overlay-layer | Yes |
|
||||
* | layer-shell | top-layer | Yes | waybar
|
||||
* | xwayland-OR | unmanaged | No | dmenu
|
||||
* | xdg-popups | xdg-popups | No |
|
||||
* | toplevels windows | always-on-top | No |
|
||||
* | toplevels windows | normal | No | firefox
|
||||
* | toplevels windows | always-on-bottom | No | pcmanfm-qt --desktop
|
||||
* | layer-shell | bottom-layer | Yes | waybar
|
||||
* | layer-shell | background-layer | Yes | swaybg
|
||||
* | Scene Tree | Description
|
||||
* | ---------------------------------- | -------------------------------------
|
||||
* | output->session_lock_tree | session lock surfaces (e.g. swaylock)
|
||||
* | output->cycle_osd_tree | window switcher's on-screen display
|
||||
* | server->cycle_preview_tree | window switcher's previewed window
|
||||
* | server->menu_tree | labwc's server-side menus
|
||||
* | output->layer_popup_tree | xdg popups on layer surfaces
|
||||
* | output->layer_tree[3] | overlay layer surfaces (e.g. rofi)
|
||||
* | output->layer_tree[2] | top layer surfaces (e.g. waybar)
|
||||
* | server->unmanaged_tree | unmanaged X11 surfaces (e.g. dmenu)
|
||||
* | server->xdg_popup_tree | xdg popups on xdg windows
|
||||
* | server->view_tree_always_on_top | always-on-top xdg/X11 windows
|
||||
* | server->view_tree | normal xdg/X11 windows (e.g. firefox)
|
||||
* | server->view_tree_always_on_bottom | always-on-bottom xdg/X11 windows
|
||||
* | output->layer_tree[1] | bottom layer surfaces
|
||||
* | output->layer_tree[0] | background layer surfaces (e.g. swaybg)
|
||||
*/
|
||||
|
||||
server->view_tree_always_on_bottom = wlr_scene_tree_create(&server->scene->tree);
|
||||
|
|
@ -589,6 +590,7 @@ server_init(struct server *server)
|
|||
server->unmanaged_tree = wlr_scene_tree_create(&server->scene->tree);
|
||||
#endif
|
||||
server->menu_tree = wlr_scene_tree_create(&server->scene->tree);
|
||||
server->cycle_preview_tree = wlr_scene_tree_create(&server->scene->tree);
|
||||
|
||||
workspaces_init(server);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue