diff options
author | Kirill Primak <vyivel@eclair.cafe> | 2022-12-05 21:13:19 +0300 |
---|---|---|
committer | Simon Zeni <simon@bl4ckb0ne.ca> | 2023-02-01 16:13:21 +0000 |
commit | fbf5982e3838ee28b5345e98832f6956c402b225 (patch) | |
tree | ba2f34e9e81f43cf2fc1ceeff37fa4ee615ad6a4 | |
parent | 21f8388b580ab2fc6637c590ccf4a5a87ef8e158 (diff) |
xwayland/xwm: introduce wlr_xwayland_surface_try_from_wlr_surface()
This new function replaces wlr_surface_is_xwayland_surface() and
wlr_xwayland_surface_from_wlr_surface().
-rw-r--r-- | include/wlr/xwayland/xwayland.h | 13 | ||||
-rw-r--r-- | xwayland/xwm.c | 10 |
2 files changed, 7 insertions, 16 deletions
diff --git a/include/wlr/xwayland/xwayland.h b/include/wlr/xwayland/xwayland.h index a8580c0e..63e64f36 100644 --- a/include/wlr/xwayland/xwayland.h +++ b/include/wlr/xwayland/xwayland.h @@ -232,19 +232,12 @@ void wlr_xwayland_set_seat(struct wlr_xwayland *xwayland, struct wlr_seat *seat); /** - * Check whether a surface is an Xwayland surface. - * - * As an edge case, if the surface has been created by Xwayland but has no X11 - * window associated, false is returned. - */ -bool wlr_surface_is_xwayland_surface(struct wlr_surface *surface); - -/** * Get a struct wlr_xwayland_surface from a struct wlr_surface. * - * This function asserts that the surface is an Xwayland surface. + * If the surface hasn't been created by Xwayland or has no X11 window + * associated, NULL is returned. */ -struct wlr_xwayland_surface *wlr_xwayland_surface_from_wlr_surface( +struct wlr_xwayland_surface *wlr_xwayland_surface_try_from_wlr_surface( struct wlr_surface *surface); void wlr_xwayland_surface_ping(struct wlr_xwayland_surface *surface); diff --git a/xwayland/xwm.c b/xwayland/xwm.c index 64052ef6..dab2cf85 100644 --- a/xwayland/xwm.c +++ b/xwayland/xwm.c @@ -101,14 +101,12 @@ struct pending_startup_id { static const struct wlr_addon_interface surface_addon_impl; -bool wlr_surface_is_xwayland_surface(struct wlr_surface *surface) { - return wlr_addon_find(&surface->addons, NULL, &surface_addon_impl) != NULL; -} - -struct wlr_xwayland_surface *wlr_xwayland_surface_from_wlr_surface( +struct wlr_xwayland_surface *wlr_xwayland_surface_try_from_wlr_surface( struct wlr_surface *surface) { struct wlr_addon *addon = wlr_addon_find(&surface->addons, NULL, &surface_addon_impl); - assert(addon != NULL); + if (addon == NULL) { + return NULL; + } struct wlr_xwayland_surface *xsurface = wl_container_of(addon, xsurface, surface_addon); return xsurface; } |