[PATCH weston v2] input: check if the focus surface has a valid resource

Kristian Høgsberg hoegsberg at gmail.com
Thu Jun 20 12:21:18 PDT 2013


On Thu, Jun 20, 2013 at 06:13:07PM +0200, Giulio Camuffo wrote:
> the resource can be NULL in some cases, like when the focus is
> taken by the black_surface used in shell.c as fullscreen background.

Yes, that looks right, it's something that would regress silently with
the wl_resource changes.  Committed.

Kristian

> ---
> 
> sorry for the noise, v1 has spaces instead of tabs
> 
>  src/input.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/src/input.c b/src/input.c
> index e670eb6..ad4512d 100644
> --- a/src/input.c
> +++ b/src/input.c
> @@ -1110,6 +1110,11 @@ pointer_set_cursor(struct wl_client *client, struct wl_resource *resource,
>  
>  	if (pointer->focus == NULL)
>  		return;
> +	/* pointer->focus->resource can be NULL. Surfaces like the
> +	black_surface used in shell.c for fullscreen don't have
> +	a resource, but can still have focus */
> +	if (pointer->focus->resource == NULL)
> +		return;
>  	if (wl_resource_get_client(pointer->focus->resource) != client)
>  		return;
>  	if (pointer->focus_serial - serial > UINT32_MAX / 2)
> -- 
> 1.8.3.1
> 
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list