[PATCH 1/3] Change find_resource_for_surface to find_resource_for_client

Tiago Vignatti tiago.vignatti at linux.intel.com
Fri Apr 20 02:23:41 PDT 2012


On 04/20/2012 05:50 AM, cdahlin at redhat.com wrote:
> From: Casey Dahlin<cdahlin at redhat.com>
>
> This function has generic applications and should be made generic.

this looks good. But we have already find_resource_for_surface in 
libwayland-server, it's just not exported. So I'd say this kind of 
modification should go there instead.


>
> Signed-off-by: Casey Dahlin<cdahlin at redhat.com>
> ---
>   src/compositor.c |   35 ++++++++++++++++-------------------
>   1 files changed, 16 insertions(+), 19 deletions(-)
>
> diff --git a/src/compositor.c b/src/compositor.c
> index 17daac4..3065f81 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -1112,6 +1112,20 @@ surface_destroy(struct wl_client *client, struct wl_resource *resource)
>   	wl_resource_destroy(resource);
>   }
>
> +/* TODO: share this function with wayland-server.c */
> +static struct wl_resource *
> +find_resource_for_client(struct wl_list *list, struct wl_client *client)
> +{
> +        struct wl_resource *r;
> +
> +        wl_list_for_each(r, list, link) {
> +                if (r->client == client)
> +                        return r;
> +        }
> +
> +        return NULL;
> +}
> +
>   WL_EXPORT void
>   weston_surface_assign_output(struct weston_surface *es)
>   {
> @@ -1742,23 +1756,6 @@ notify_keyboard_focus(struct wl_input_device *device, struct wl_array *keys)
>   	}
>   }
>
> -/* TODO: share this function with wayland-server.c */
> -static struct wl_resource *
> -find_resource_for_surface(struct wl_list *list, struct wl_surface *surface)
> -{
> -        struct wl_resource *r;
> -
> -        if (!surface)
> -                return NULL;
> -
> -        wl_list_for_each(r, list, link) {
> -                if (r->client == surface->resource.client)
> -                        return r;
> -        }
> -
> -        return NULL;
> -}
> -
>   static void
>   lose_touch_focus_resource(struct wl_listener *listener, void *data)
>   {
> @@ -1791,8 +1788,8 @@ touch_set_focus(struct weston_input_device *device,
>
>   	if (surface) {
>   		resource =
> -			find_resource_for_surface(&input_device->resource_list,
> -						  surface);
> +			find_resource_for_client(&input_device->resource_list,
> +						 surface->resource.client);
>   		if (!resource) {
>   			fprintf(stderr, "couldn't find resource\n");
>   			return;



More information about the wayland-devel mailing list