From 49cb85ad72aed7a94028e1a033b57b7576e8bec6 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Wed, 1 Feb 2023 20:13:30 +0100 Subject: [PATCH] input-method-v2: convert to try_from References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/884 --- include/wlr/types/wlr_input_method_v2.h | 13 ++++--------- 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 @@ -120,18 +120,13 @@ void wlr_input_method_v2_send_done(struct wlr_input_method_v2 *input_method); 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) {