On Mon, Mar 12, 2012 at 04:06:01PM +0800, [email protected] wrote:
> From: Alex Wu <[email protected]>
> 
> In case of no regular window, switcher will crash in switch_next()
> due to "next == NULL" and in switcher_destroy() due to
> "switcher->current == NULL".

Thanks, applied.
Kristian

> ---
>  src/shell.c |    6 +++++-
>  1 files changed, 5 insertions(+), 1 deletions(-)
> 
> diff --git a/src/shell.c b/src/shell.c
> index 765b0a4..28d5ea7 100644
> --- a/src/shell.c
> +++ b/src/shell.c
> @@ -1840,6 +1840,9 @@ switcher_next(struct switcher *switcher)
>       if (next == NULL)
>               next = first;
>  
> +     if (next == NULL) 
> +             return;
> +
>       wl_list_remove(&switcher->listener.link);
>       wl_list_insert(next->surface.resource.destroy_listener_list.prev,
>                      &switcher->listener.link);
> @@ -1871,7 +1874,8 @@ switcher_destroy(struct switcher *switcher, uint32_t 
> time)
>               weston_surface_damage(surface);
>       }
>  
> -     activate(compositor->shell, switcher->current, device, time);
> +     if (switcher->current)
> +             activate(compositor->shell, switcher->current, device, time);
>       wl_list_remove(&switcher->listener.link);
>       wl_input_device_end_keyboard_grab(&device->input_device, time);
>       free(switcher);
> -- 
> 1.7.5.4
> 
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to