aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorKirill Primak <vyivel@eclair.cafe>2022-05-31 21:40:03 +0300
committerIsaac Freund <mail@isaacfreund.com>2022-06-01 09:49:25 +0000
commit0c2eed533eeb6a8d7dbe0a0378930b3a01be557d (patch)
treef06366c1c399cac7623756fdd75388c61f3fb671 /include
parentd3bc17d5d1712cb445598d5fbfd40574661b2568 (diff)
scene/output-layout: improve ownership logic
This commit ensures that outputs that weren't created by the output layout helper aren't destroyed on the output layout change. Consider the following piece of logic: // struct wlr_output *o1, *o2; // struct wlr_scene *scene; // struct wlr_output_layout *layout; wlr_scene_attach_output_layout(scene, layout); wlr_output_layout_add_auto(layout, o1); struct wlr_scene_output *so2 = wlr_scene_output_create(scene, o2); wlr_output_layout_move(layout, o1, 100, 200); // so2 is invalid now
Diffstat (limited to 'include')
-rw-r--r--include/wlr/types/wlr_scene.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/include/wlr/types/wlr_scene.h b/include/wlr/types/wlr_scene.h
index 4b8ea517..49804d83 100644
--- a/include/wlr/types/wlr_scene.h
+++ b/include/wlr/types/wlr_scene.h
@@ -406,8 +406,10 @@ struct wlr_scene_output *wlr_scene_get_scene_output(struct wlr_scene *scene,
/**
* Attach an output layout to a scene.
*
- * Outputs in the output layout are automatically added to the scene. Any
- * change to the output layout is mirrored to the scene-graph outputs.
+ * Adding, removing, or repositioning an output in the output layout
+ * will respectively add, remove or reposition a corresponding
+ * scene-graph output. When the output layout is destroyed, scene-graph
+ * outputs which were created by this helper will be destroyed.
*/
bool wlr_scene_attach_output_layout(struct wlr_scene *scene,
struct wlr_output_layout *output_layout);