From a7eff3d967868dbf39ab553b0204fb3b72733e93 Mon Sep 17 00:00:00 2001 From: Kenny Levinsen Date: Sat, 30 Sep 2023 13:40:21 +0200 Subject: [PATCH] shell: Use new try_from surface getters --- seat.c | 2 +- xdg_shell.c | 13 +++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/seat.c b/seat.c index d047b59..5e1beaf 100644 --- a/seat.c +++ b/seat.c @@ -65,7 +65,7 @@ desktop_view_at(struct cg_server *server, double lx, double ly, struct wlr_surfa } 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); + struct wlr_scene_surface *scene_surface = wlr_scene_surface_try_from_buffer(scene_buffer); if (!scene_surface) { return NULL; } diff --git a/xdg_shell.c b/xdg_shell.c index c577dc5..9d75b84 100644 --- a/xdg_shell.c +++ b/xdg_shell.c @@ -46,11 +46,13 @@ static struct cg_view * popup_get_view(struct wlr_xdg_popup *popup) { while (true) { - if (popup->parent == NULL || !wlr_surface_is_xdg_surface(popup->parent)) { + if (popup->parent == NULL) { + return NULL; + } + struct wlr_xdg_surface *xdg_surface = wlr_xdg_surface_try_from_wlr_surface(popup->parent); + if (xdg_surface == NULL) { return NULL; } - - struct wlr_xdg_surface *xdg_surface = wlr_xdg_surface_from_wlr_surface(popup->parent); switch (xdg_surface->role) { case WLR_XDG_SURFACE_ROLE_TOPLEVEL: return xdg_surface->data; @@ -254,7 +256,10 @@ handle_xdg_shell_surface_new(struct wl_listener *listener, void *data) } struct wlr_scene_tree *parent_scene_tree = NULL; - struct wlr_xdg_surface *parent = wlr_xdg_surface_from_wlr_surface(popup->parent); + struct wlr_xdg_surface *parent = wlr_xdg_surface_try_from_wlr_surface(popup->parent); + if (parent == NULL) { + return; + } switch (parent->role) { case WLR_XDG_SURFACE_ROLE_TOPLEVEL:; parent_scene_tree = view->scene_tree;