diff options
-rw-r--r-- | rootston/desktop.c | 2 | ||||
-rw-r--r-- | types/wlr_xdg_shell.c | 7 | ||||
-rw-r--r-- | types/wlr_xdg_shell_v6.c | 7 |
3 files changed, 4 insertions, 12 deletions
diff --git a/rootston/desktop.c b/rootston/desktop.c index 177828af..4edcb5e3 100644 --- a/rootston/desktop.c +++ b/rootston/desktop.c @@ -593,10 +593,12 @@ static bool view_at(struct roots_view *view, double lx, double ly, _surface = wlr_wl_shell_surface_surface_at(view->wl_shell_surface, view_sx, view_sy, &_sx, &_sy); break; +#ifdef WLR_HAS_XWAYLAND case ROOTS_XWAYLAND_VIEW: _surface = wlr_surface_surface_at(view->wlr_surface, view_sx, view_sy, &_sx, &_sy); break; +#endif } if (_surface != NULL) { *sx = _sx; diff --git a/types/wlr_xdg_shell.c b/types/wlr_xdg_shell.c index 43ccd5aa..d4848e35 100644 --- a/types/wlr_xdg_shell.c +++ b/types/wlr_xdg_shell.c @@ -589,13 +589,8 @@ static void xdg_popup_handle_destroy(struct wl_client *client, struct wl_resource *resource) { struct wlr_xdg_surface *surface = xdg_surface_from_xdg_popup_resource(resource); - struct wlr_xdg_popup_grab *grab = - xdg_shell_popup_grab_from_seat(surface->client->shell, - surface->popup->seat); - struct wlr_xdg_surface *topmost = - xdg_popup_grab_get_topmost(grab); - if (topmost != surface) { + if (!wl_list_empty(&surface->popups)) { wl_resource_post_error(surface->client->resource, XDG_WM_BASE_ERROR_NOT_THE_TOPMOST_POPUP, "xdg_popup was destroyed while it was not the topmost popup"); diff --git a/types/wlr_xdg_shell_v6.c b/types/wlr_xdg_shell_v6.c index e7a35f97..f1258f0f 100644 --- a/types/wlr_xdg_shell_v6.c +++ b/types/wlr_xdg_shell_v6.c @@ -545,13 +545,8 @@ static void xdg_popup_handle_destroy(struct wl_client *client, struct wl_resource *resource) { struct wlr_xdg_surface_v6 *surface = xdg_surface_from_xdg_popup_resource(resource); - struct wlr_xdg_popup_grab_v6 *grab = - xdg_shell_popup_grab_from_seat(surface->client->shell, - surface->popup->seat); - struct wlr_xdg_surface_v6 *topmost = - xdg_popup_grab_get_topmost(grab); - if (topmost != surface) { + if (!wl_list_empty(&surface->popups)) { wl_resource_post_error(surface->client->resource, ZXDG_SHELL_V6_ERROR_NOT_THE_TOPMOST_POPUP, "xdg_popup was destroyed while it was not the topmost popup"); |