Add support for toplevel capture

References: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5078
This commit is contained in:
Simon Ser 2025-05-25 19:38:05 +02:00 committed by Kenny Levinsen
parent eb8acfd7b1
commit 170c9c9525
6 changed files with 60 additions and 5 deletions

View file

@ -49,6 +49,11 @@ bool view_init(struct sway_view *view, enum sway_view_type type,
failed = true;
}
view->image_capture_scene = wlr_scene_create();
if (view->image_capture_scene == NULL) {
failed = true;
}
if (failed) {
wlr_scene_node_destroy(&view->scene_tree->node);
return false;
@ -81,6 +86,7 @@ void view_destroy(struct sway_view *view) {
list_free(view->executed_criteria);
view_assign_ctx(view, NULL);
wlr_scene_node_destroy(&view->image_capture_scene->tree.node);
wlr_scene_node_destroy(&view->scene_tree->node);
if (view->impl->destroy) {
view->impl->destroy(view);
@ -815,6 +821,7 @@ void view_map(struct sway_view *view, struct wlr_surface *wlr_surface,
};
view->ext_foreign_toplevel =
wlr_ext_foreign_toplevel_handle_v1_create(server.foreign_toplevel_list, &foreign_toplevel_state);
view->ext_foreign_toplevel->data = view;
view->foreign_toplevel =
wlr_foreign_toplevel_handle_v1_create(server.foreign_toplevel_manager);