diff options
author | Simon Ser <contact@emersion.fr> | 2023-02-01 20:13:30 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2023-02-01 20:13:30 +0100 |
commit | 49cb85ad72aed7a94028e1a033b57b7576e8bec6 (patch) | |
tree | b47b52938a371a1beac59574dcfde362d2512704 | |
parent | 711a1a3ed42150fdbc716e80719d482006075f69 (diff) |
input-method-v2: convert to try_from
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/884
-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) { |