mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-18 06:47:31 -04:00
Merge branch 'output-scene' into 'master'
scene_output_layout: Don't destroy output when output layout is destroyed See merge request wlroots/wlroots!4358
This commit is contained in:
commit
5ad781d2d3
2 changed files with 6 additions and 10 deletions
|
|
@ -517,21 +517,19 @@ struct wlr_scene_output *wlr_scene_get_scene_output(struct wlr_scene *scene,
|
||||||
/**
|
/**
|
||||||
* Attach an output layout to a scene.
|
* Attach an output layout to a scene.
|
||||||
*
|
*
|
||||||
* With an attached `wlr_scene_output_layout`, removing or repositioning an output in the output
|
* The resulting scene output layout allows to synchronize the positions of scene
|
||||||
* layout will respectively remove or reposition a corresponding scene-graph output. When the output
|
* outputs with the positions of corresponding layout outputs.
|
||||||
* layout is destroyed, scene-graph outputs which were attached to this helper will be destroyed.
|
|
||||||
*
|
*
|
||||||
* When adding an output to the output_layout, users must also create a `wlr_scene_output` and pass
|
* It is automatically destroyed when the scene or the output layout is destroyed.
|
||||||
* it to wlr_scene_output_layout_add_output().
|
|
||||||
*/
|
*/
|
||||||
struct wlr_scene_output_layout *wlr_scene_attach_output_layout(struct wlr_scene *scene,
|
struct wlr_scene_output_layout *wlr_scene_attach_output_layout(struct wlr_scene *scene,
|
||||||
struct wlr_output_layout *output_layout);
|
struct wlr_output_layout *output_layout);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add an output to the scene, with its positioning defined by the output layout.
|
* Add an output to the scene output layout.
|
||||||
*
|
*
|
||||||
* The `wlr_scene_output_layout` takes ownership of the `wlr_scene_output`, which will be destroyed
|
* When the layout output is repositioned, the scene output will be repositioned
|
||||||
* when either the `wlr_scene_output_layout` or the `wlr_output_layout_output` is destroyed.
|
* accordingly.
|
||||||
*/
|
*/
|
||||||
void wlr_scene_output_layout_add_output(struct wlr_scene_output_layout *sol,
|
void wlr_scene_output_layout_add_output(struct wlr_scene_output_layout *sol,
|
||||||
struct wlr_output_layout_output *lo, struct wlr_scene_output *so);
|
struct wlr_output_layout_output *lo, struct wlr_scene_output *so);
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,6 @@ static void scene_output_layout_output_destroy(
|
||||||
wl_list_remove(&solo->layout_output_destroy.link);
|
wl_list_remove(&solo->layout_output_destroy.link);
|
||||||
wl_list_remove(&solo->scene_output_destroy.link);
|
wl_list_remove(&solo->scene_output_destroy.link);
|
||||||
wl_list_remove(&solo->link);
|
wl_list_remove(&solo->link);
|
||||||
wlr_scene_output_destroy(solo->scene_output);
|
|
||||||
free(solo);
|
free(solo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -43,7 +42,6 @@ static void scene_output_layout_output_handle_scene_output_destroy(
|
||||||
struct wl_listener *listener, void *data) {
|
struct wl_listener *listener, void *data) {
|
||||||
struct wlr_scene_output_layout_output *solo =
|
struct wlr_scene_output_layout_output *solo =
|
||||||
wl_container_of(listener, solo, scene_output_destroy);
|
wl_container_of(listener, solo, scene_output_destroy);
|
||||||
solo->scene_output = NULL;
|
|
||||||
scene_output_layout_output_destroy(solo);
|
scene_output_layout_output_destroy(solo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue