aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--types/xdg_shell/wlr_xdg_popup.c3
-rw-r--r--types/xdg_shell_v6/wlr_xdg_popup_v6.c3
2 files changed, 6 insertions, 0 deletions
diff --git a/types/xdg_shell/wlr_xdg_popup.c b/types/xdg_shell/wlr_xdg_popup.c
index 2435b9c4..bd969147 100644
--- a/types/xdg_shell/wlr_xdg_popup.c
+++ b/types/xdg_shell/wlr_xdg_popup.c
@@ -152,6 +152,9 @@ static void xdg_popup_handle_grab(struct wl_client *client,
wlr_xdg_surface_from_popup_resource(resource);
struct wlr_seat_client *seat_client =
wlr_seat_client_from_resource(seat_resource);
+ if (!surface) {
+ return;
+ }
if (surface->popup->committed) {
wl_resource_post_error(surface->popup->resource,
diff --git a/types/xdg_shell_v6/wlr_xdg_popup_v6.c b/types/xdg_shell_v6/wlr_xdg_popup_v6.c
index cc6fa58a..378ae963 100644
--- a/types/xdg_shell_v6/wlr_xdg_popup_v6.c
+++ b/types/xdg_shell_v6/wlr_xdg_popup_v6.c
@@ -174,6 +174,9 @@ static void xdg_popup_handle_grab(struct wl_client *client,
xdg_surface_from_xdg_popup_resource(resource);
struct wlr_seat_client *seat_client =
wlr_seat_client_from_resource(seat_resource);
+ if (!surface) {
+ return;
+ }
if (surface->popup->committed) {
wl_resource_post_error(surface->popup->resource,