[PATCH weston] desktop-shell: Don't crash on zoom without a pointer in the seat

Peter Hutterer peter.hutterer at who-t.net
Tue Jan 6 14:04:05 PST 2015


On Tue, Jan 06, 2015 at 02:28:13PM -0600, Derek Foreman wrote:
> The zoom effect zooms at the seat's current pointer location.  When no
> pointer is present the zoom key bindings cause a crash.
> 
> Instead, check for the absence of a pointer and log a warning.
> 
> Signed-off-by: Derek Foreman <derekf at osg.samsung.com>

it would be a bit more involved but I think it'd be more obvious to a user
if the zoom just happened around the center of the output. Or if you want to
get fancy on the center of the surface with the keyboard focus.
that way the user still sees something happening when the key is hit.

having said that, this patch looks fine for what it does
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
   Peter

> ---
>  desktop-shell/shell.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index a7514f7..0ec6d33 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -4671,6 +4671,11 @@ do_zoom(struct weston_seat *seat, uint32_t time, uint32_t key, uint32_t axis,
>  	struct weston_output *output;
>  	float increment;
>  
> +	if (!seat->pointer) {
> +		weston_log("Zoom hotkey pressed but seat '%s' contains no pointer.\n", seat->seat_name);
> +		return;
> +	}
> +
>  	wl_list_for_each(output, &compositor->output_list, link) {
>  		if (pixman_region32_contains_point(&output->region,
>  						   wl_fixed_to_double(seat->pointer->x),
> -- 
> 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