[PATCH weston] input: Destroy the pointer when the last device is unplugged

Jonas Ã…dahl jadahl at gmail.com
Tue Jan 6 19:25:22 PST 2015


On Tue, Jan 06, 2015 at 07:51:43PM -0600, Derek Foreman wrote:
> Removing the last device that provides a pointer now destroys the
> pointer struct and sets it to NULL (so things like zoom don't use
> the old co-ordinates)

The fact that the pointer is not destroyed was delibaret, as some
pointer related state should be kept even after the last pointer is
unplugged. The use case that should work is:

1. Session has pointer, position initialized to to (x, y)
2. User moves the pointer, position changed to (x', y')
3. User unplugs the (only) pointer
4. User plugs in a pointer

At this state, the cursor position should be initialized to (x', y').


Jonas

> 
> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
> ---
>  src/input.c | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/src/input.c b/src/input.c
> index d3bfa5e..ec5ee08 100644
> --- a/src/input.c
> +++ b/src/input.c
> @@ -2221,11 +2221,9 @@ weston_seat_release_pointer(struct weston_seat *seat)
>  					 wl_fixed_from_int(0));
>  		weston_pointer_cancel_grab(pointer);
>  
> -		if (pointer->sprite)
> -			pointer_unmap_sprite(pointer);
> -
> -		weston_pointer_reset_state(pointer);
>  		seat_send_updated_caps(seat);
> +		weston_pointer_destroy(pointer);
> +		seat->pointer = NULL;
>  	}
>  }
>  
> -- 
> 2.1.4
> 
> _______________________________________________
> 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