mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-17 06:46:39 -04:00
wlr_scene: Stop using addon to scene for subsurface_tree
Not needed anymore
This commit is contained in:
parent
9be258994d
commit
327ae35307
1 changed files with 6 additions and 12 deletions
|
|
@ -22,11 +22,10 @@ struct wlr_scene_subsurface_tree_surface {
|
||||||
struct wl_listener surface_map;
|
struct wl_listener surface_map;
|
||||||
struct wl_listener surface_unmap;
|
struct wl_listener surface_unmap;
|
||||||
struct wl_listener surface_new_subsurface;
|
struct wl_listener surface_new_subsurface;
|
||||||
|
struct wl_listener scene_destroy;
|
||||||
|
|
||||||
struct wlr_scene_subsurface_tree_surface *parent; // NULL for the top-level surface
|
struct wlr_scene_subsurface_tree_surface *parent; // NULL for the top-level surface
|
||||||
|
|
||||||
struct wlr_addon scene_addon;
|
|
||||||
|
|
||||||
struct wlr_box clip;
|
struct wlr_box clip;
|
||||||
struct wl_list link;
|
struct wl_list link;
|
||||||
|
|
||||||
|
|
@ -37,9 +36,9 @@ struct wlr_scene_subsurface_tree_surface {
|
||||||
struct wl_listener subsurface_destroy;
|
struct wl_listener subsurface_destroy;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void subsurface_tree_addon_destroy(struct wlr_addon *addon) {
|
static void subsurface_tree_handle_scene_destroy(struct wl_listener *listener, void *data) {
|
||||||
struct wlr_scene_subsurface_tree_surface *subsurface_tree =
|
struct wlr_scene_subsurface_tree_surface *subsurface_tree =
|
||||||
wl_container_of(addon, subsurface_tree, scene_addon);
|
wl_container_of(listener, subsurface_tree, scene_destroy);
|
||||||
// tree and scene_surface will be cleaned up by scene_node_finish
|
// tree and scene_surface will be cleaned up by scene_node_finish
|
||||||
if (subsurface_tree->parent) {
|
if (subsurface_tree->parent) {
|
||||||
wlr_addon_finish(&subsurface_tree->surface_addon);
|
wlr_addon_finish(&subsurface_tree->surface_addon);
|
||||||
|
|
@ -47,12 +46,12 @@ static void subsurface_tree_addon_destroy(struct wlr_addon *addon) {
|
||||||
} else {
|
} else {
|
||||||
free(subsurface_tree->subsurface_tree);
|
free(subsurface_tree->subsurface_tree);
|
||||||
}
|
}
|
||||||
wlr_addon_finish(&subsurface_tree->scene_addon);
|
|
||||||
wl_list_remove(&subsurface_tree->surface_destroy.link);
|
wl_list_remove(&subsurface_tree->surface_destroy.link);
|
||||||
wl_list_remove(&subsurface_tree->surface_commit.link);
|
wl_list_remove(&subsurface_tree->surface_commit.link);
|
||||||
wl_list_remove(&subsurface_tree->surface_map.link);
|
wl_list_remove(&subsurface_tree->surface_map.link);
|
||||||
wl_list_remove(&subsurface_tree->surface_unmap.link);
|
wl_list_remove(&subsurface_tree->surface_unmap.link);
|
||||||
wl_list_remove(&subsurface_tree->surface_new_subsurface.link);
|
wl_list_remove(&subsurface_tree->surface_new_subsurface.link);
|
||||||
|
wl_list_remove(&subsurface_tree->scene_destroy.link);
|
||||||
wl_list_remove(&subsurface_tree->link);
|
wl_list_remove(&subsurface_tree->link);
|
||||||
free(subsurface_tree);
|
free(subsurface_tree);
|
||||||
}
|
}
|
||||||
|
|
@ -236,11 +235,6 @@ static void subsurface_tree_handle_surface_new_subsurface(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct wlr_addon_interface subsurface_tree_addon_impl = {
|
|
||||||
.name = "wlr_scene_subsurface_tree_surface",
|
|
||||||
.destroy = subsurface_tree_addon_destroy,
|
|
||||||
};
|
|
||||||
|
|
||||||
static struct wlr_scene_subsurface_tree_surface *scene_surface_tree_create_surface(
|
static struct wlr_scene_subsurface_tree_surface *scene_surface_tree_create_surface(
|
||||||
struct wlr_scene_subsurface_tree *tree,
|
struct wlr_scene_subsurface_tree *tree,
|
||||||
struct wlr_scene_tree *parent, struct wlr_surface *surface) {
|
struct wlr_scene_tree *parent, struct wlr_surface *surface) {
|
||||||
|
|
@ -281,8 +275,8 @@ static struct wlr_scene_subsurface_tree_surface *scene_surface_tree_create_surfa
|
||||||
wl_list_insert(&tree->surfaces, &subsurface_tree->link);
|
wl_list_insert(&tree->surfaces, &subsurface_tree->link);
|
||||||
subsurface_tree_reconfigure(subsurface_tree);
|
subsurface_tree_reconfigure(subsurface_tree);
|
||||||
|
|
||||||
wlr_addon_init(&subsurface_tree->scene_addon, &subsurface_tree->tree->node.addons,
|
subsurface_tree->scene_destroy.notify = subsurface_tree_handle_scene_destroy;
|
||||||
NULL, &subsurface_tree_addon_impl);
|
wl_signal_add(&subsurface_tree->tree->node.events.destroy, &subsurface_tree->scene_destroy);
|
||||||
|
|
||||||
subsurface_tree->surface_destroy.notify = subsurface_tree_handle_surface_destroy;
|
subsurface_tree->surface_destroy.notify = subsurface_tree_handle_surface_destroy;
|
||||||
wl_signal_add(&surface->events.destroy, &subsurface_tree->surface_destroy);
|
wl_signal_add(&surface->events.destroy, &subsurface_tree->surface_destroy);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue