diff options
-rw-r--r-- | include/wlr/types/wlr_input_method_v2.h | 13 | ||||
-rw-r--r-- | types/wlr_input_method_v2.c | 14 |
2 files changed, 10 insertions, 17 deletions
diff --git a/include/wlr/types/wlr_input_method_v2.h b/include/wlr/types/wlr_input_method_v2.h index e3f326ac..11e43590 100644 --- a/include/wlr/types/wlr_input_method_v2.h +++ b/include/wlr/types/wlr_input_method_v2.h @@ -121,17 +121,12 @@ void wlr_input_method_v2_send_unavailable( struct wlr_input_method_v2 *input_method); /** - * Returns true if the surface has the input popup surface role. - */ -bool wlr_surface_is_input_popup_surface_v2(struct wlr_surface *surface); - -/** * Get a struct wlr_input_popup_surface_v2 from a struct wlr_surface. - * Asserts that the surface has the input popup surface role. - * May return NULL even if the surface has the input popup surface role if the - * corresponding input popup surface has been destroyed. + * + * Returns NULL if the surface has a different role or if the input popup + * surface has been destroyed. */ -struct wlr_input_popup_surface_v2 *wlr_input_popup_surface_v2_from_wlr_surface( +struct wlr_input_popup_surface_v2 *wlr_input_popup_surface_v2_try_from_wlr_surface( struct wlr_surface *surface); void wlr_input_popup_surface_v2_send_text_input_rectangle( diff --git a/types/wlr_input_method_v2.c b/types/wlr_input_method_v2.c index 285a7fbe..d38d3748 100644 --- a/types/wlr_input_method_v2.c +++ b/types/wlr_input_method_v2.c @@ -123,12 +123,6 @@ static void im_delete_surrounding_text(struct wl_client *client, input_method->pending.delete.after_length = after_length; } -struct wlr_input_popup_surface_v2 *wlr_input_popup_surface_v2_from_wlr_surface( - struct wlr_surface *surface) { - assert(wlr_surface_is_input_popup_surface_v2(surface)); - return (struct wlr_input_popup_surface_v2 *)surface->role_data; -} - void wlr_input_popup_surface_v2_send_text_input_rectangle( struct wlr_input_popup_surface_v2 *popup_surface, struct wlr_box *sbox) { @@ -181,8 +175,12 @@ static const struct wlr_surface_role input_popup_surface_v2_role = { .destroy = popup_surface_surface_role_destroy, }; -bool wlr_surface_is_input_popup_surface_v2(struct wlr_surface *surface) { - return surface->role == &input_popup_surface_v2_role; +struct wlr_input_popup_surface_v2 *wlr_input_popup_surface_v2_try_from_wlr_surface( + struct wlr_surface *surface) { + if (surface->role != &input_popup_surface_v2_role) { + return NULL; + } + return (struct wlr_input_popup_surface_v2 *)surface->role_data; } static void popup_resource_destroy(struct wl_resource *resource) { |