mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -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
|
|
@ -90,7 +90,11 @@ handle_destroy(struct wl_listener *listener, void *data)
|
|||
wl_list_remove(&view->request_configure.link);
|
||||
wl_list_remove(&view->request_maximize.link);
|
||||
wl_list_remove(&view->request_fullscreen.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);
|
||||
}
|
||||
|
||||
|
|
@ -256,13 +260,17 @@ map(struct view *view)
|
|||
}
|
||||
view->surface = view->xwayland_surface->surface;
|
||||
|
||||
view->scene_tree = wlr_scene_tree_create(&view->server->view_tree->node);
|
||||
view->scene_node = wlr_scene_subsurface_tree_create(
|
||||
&view->server->view_tree->node, view->surface);
|
||||
&view->scene_tree->node, view->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;
|
||||
|
||||
view->ssd.enabled = want_deco(view);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue