aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/wlr/xwayland/xwayland.h13
-rw-r--r--xwayland/xwm.c10
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;
}