mirror of
https://github.com/labwc/labwc.git
synced 2026-03-20 05:34:12 -04: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) */
|
/* Tree for unmanaged xsurfaces without initialized view (usually popups) */
|
||||||
struct wlr_scene_tree *unmanaged_tree;
|
struct wlr_scene_tree *unmanaged_tree;
|
||||||
#endif
|
#endif
|
||||||
|
struct wlr_scene_tree *cycle_preview_tree;
|
||||||
/* Tree for built in menu */
|
/* Tree for built in menu */
|
||||||
struct wlr_scene_tree *menu_tree;
|
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,
|
.border_width = theme->osd_window_switcher_preview_border_width,
|
||||||
};
|
};
|
||||||
rect = lab_scene_rect_create(&server->scene->tree, &opts);
|
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;
|
server->cycle.preview_outline = rect;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -245,13 +246,8 @@ preview_selected_view(struct view *view)
|
||||||
cycle->preview_was_shaded = true;
|
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,
|
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 */
|
/* Finally raise selected node to the top */
|
||||||
wlr_scene_node_raise_to_top(cycle->preview_node);
|
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
|
* z-order for nodes which cover the whole work-area. For per-output
|
||||||
* scene-trees, see handle_new_output() in src/output.c
|
* scene-trees, see handle_new_output() in src/output.c
|
||||||
*
|
*
|
||||||
* | Type | Scene Tree | Per Output | Example
|
* | Scene Tree | Description
|
||||||
* | ------------------- | ---------------- | ---------- | -------
|
* | ---------------------------------- | -------------------------------------
|
||||||
* | ext-session | lock-screen | Yes | swaylock
|
* | output->session_lock_tree | session lock surfaces (e.g. swaylock)
|
||||||
* | window switcher OSD | cycle_osd_tree | Yes |
|
* | output->cycle_osd_tree | window switcher's on-screen display
|
||||||
* | compositor-menu | menu_tree | No | root-menu
|
* | server->cycle_preview_tree | window switcher's previewed window
|
||||||
* | layer-shell | layer-popups | Yes |
|
* | server->menu_tree | labwc's server-side menus
|
||||||
* | layer-shell | overlay-layer | Yes |
|
* | output->layer_popup_tree | xdg popups on layer surfaces
|
||||||
* | layer-shell | top-layer | Yes | waybar
|
* | output->layer_tree[3] | overlay layer surfaces (e.g. rofi)
|
||||||
* | xwayland-OR | unmanaged | No | dmenu
|
* | output->layer_tree[2] | top layer surfaces (e.g. waybar)
|
||||||
* | xdg-popups | xdg-popups | No |
|
* | server->unmanaged_tree | unmanaged X11 surfaces (e.g. dmenu)
|
||||||
* | toplevels windows | always-on-top | No |
|
* | server->xdg_popup_tree | xdg popups on xdg windows
|
||||||
* | toplevels windows | normal | No | firefox
|
* | server->view_tree_always_on_top | always-on-top xdg/X11 windows
|
||||||
* | toplevels windows | always-on-bottom | No | pcmanfm-qt --desktop
|
* | server->view_tree | normal xdg/X11 windows (e.g. firefox)
|
||||||
* | layer-shell | bottom-layer | Yes | waybar
|
* | server->view_tree_always_on_bottom | always-on-bottom xdg/X11 windows
|
||||||
* | layer-shell | background-layer | Yes | swaybg
|
* | 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);
|
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);
|
server->unmanaged_tree = wlr_scene_tree_create(&server->scene->tree);
|
||||||
#endif
|
#endif
|
||||||
server->menu_tree = wlr_scene_tree_create(&server->scene->tree);
|
server->menu_tree = wlr_scene_tree_create(&server->scene->tree);
|
||||||
|
server->cycle_preview_tree = wlr_scene_tree_create(&server->scene->tree);
|
||||||
|
|
||||||
workspaces_init(server);
|
workspaces_init(server);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue