summaryrefslogtreecommitdiff
path: root/tinywl.c
diff options
context:
space:
mode:
authorAlexander Orzechowski <[email protected]>2022-05-19 14:26:50 -0400
committerAlexander Orzechowski <[email protected]>2022-05-19 14:26:50 -0400
commitdd1d163bf8ab94b3f59209193c2cd209c5b472b4 (patch)
treed8fe797461106642bb1be64fd05a994ec9448607 /tinywl.c
parenta755670648459d6c341a75a384942c3f44c5c85b (diff)
wlr_scene: Refactor wlr_scene_surface to be a helper on top of wlr_scene_buffer
Diffstat (limited to 'tinywl.c')
-rw-r--r--tinywl.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/tinywl.c b/tinywl.c
index 783cc18..bf3fb43 100644
--- a/tinywl.c
+++ b/tinywl.c
@@ -341,10 +341,17 @@ static struct tinywl_view *desktop_view_at(
* surface in the surface tree of a tinywl_view. */
struct wlr_scene_node *node = wlr_scene_node_at(
&server->scene->node, lx, ly, sx, sy);
- if (node == NULL || node->type != WLR_SCENE_NODE_SURFACE) {
+ if (node == NULL || node->type != WLR_SCENE_NODE_BUFFER) {
return NULL;
}
- *surface = wlr_scene_surface_from_node(node)->surface;
+ struct wlr_scene_buffer *scene_buffer = wlr_scene_buffer_from_node(node);
+ struct wlr_scene_surface *scene_surface =
+ wlr_scene_surface_from_buffer(scene_buffer);
+ if (!scene_surface) {
+ return NULL;
+ }
+
+ *surface = scene_surface->surface;
/* Find the node corresponding to the tinywl_view at the root of this
* surface tree, it is the only one for which we set the data field. */
while (node != NULL && node->data == NULL) {