mirror of
https://github.com/labwc/labwc.git
synced 2026-03-01 01:40:24 -05:00
Use view->scene_tree as toplevel for view + some legwork:
desktop.c move_to_front() calls wlr_scene_node_raise_to_top
desktop.c, ssd/include.h add LAB_SSD_{OSD, MENU, LAYER_SURFACE} enums
desktop.c desktop_surface_and_view_at() -> desktop_node_and_view_at()
cursor.c reenable cursor_rebase()
cursor.c reenable button click on layer surface
This commit is contained in:
parent
688abf7db1
commit
7ea733761b
7 changed files with 126 additions and 64 deletions
14
src/xdg.c
14
src/xdg.c
|
|
@ -86,7 +86,11 @@ handle_destroy(struct wl_listener *listener, void *data)
|
|||
interactive_end(view);
|
||||
wl_list_remove(&view->link);
|
||||
wl_list_remove(&view->destroy.link);
|
||||
ssd_destroy(view);
|
||||
if (view->scene_tree) {
|
||||
ssd_destroy(view);
|
||||
wlr_scene_node_destroy(&view->scene_tree->node);
|
||||
view->scene_tree = NULL;
|
||||
}
|
||||
free(view);
|
||||
}
|
||||
|
||||
|
|
@ -388,13 +392,17 @@ xdg_surface_new(struct wl_listener *listener, void *data)
|
|||
view->xdg_surface = xdg_surface;
|
||||
wl_list_init(&view->ssd.parts);
|
||||
|
||||
view->scene_tree = wlr_scene_tree_create(&view->server->view_tree->node);
|
||||
view->scene_node = wlr_scene_xdg_surface_create(
|
||||
&view->server->view_tree->node, view->xdg_surface);
|
||||
&view->scene_tree->node, view->xdg_surface);
|
||||
if (!view->scene_node) {
|
||||
wlr_scene_node_destroy(&view->scene_tree->node);
|
||||
view->scene_tree = NULL;
|
||||
wl_resource_post_no_memory(view->surface->resource);
|
||||
/* TODO: should we free(view) here? */
|
||||
return;
|
||||
}
|
||||
view->scene_node->data = view;
|
||||
view->scene_tree->node.data = view;
|
||||
|
||||
/* In support of xdg_toplevel_decoration */
|
||||
xdg_surface->data = view;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue