[PATCH] weston:Send done event with version 2 of wl_output

Pekka Paalanen ppaalanen at gmail.com
Fri Mar 14 07:58:25 PDT 2014


On Fri, 14 Mar 2014 12:16:05 +0800
Quanxian Wang <quanxian.wang at intel.com> wrote:

> With protocol of wl_output version 2, after the output change,
> it should send done event to all clients bound with it.
> 
> Signed-off-by: Quanxian Wang <quanxian.wang at intel.com>
> ---
>  src/compositor.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/src/compositor.c b/src/compositor.c
> index 7c29d51..98a4f6f 100644
> --- a/src/compositor.c
> +++ b/src/compositor.c
> @@ -3245,7 +3245,7 @@ weston_output_move(struct weston_output *output, int x, int y)
>  	wl_signal_emit(&output->compositor->output_moved_signal, output);
>  
>  	/* Notify clients of the change for output position. */
> -	wl_resource_for_each(resource, &output->resource_list)
> +	wl_resource_for_each(resource, &output->resource_list) {
>  		wl_output_send_geometry(resource,
>  					output->x,
>  					output->y,
> @@ -3255,6 +3255,10 @@ weston_output_move(struct weston_output *output, int x, int y)
>  					output->make,
>  					output->model,
>  					output->transform);
> +
> +		if (wl_resource_get_version(resource) >= 2)
> +			wl_output_send_done(resource);
> +	}
>  }
>  
>  WL_EXPORT void

Hi,

are you sure all the output state updates have been sent at this point?

I did a quick grep, and this seems to be fine. wl_output_send_*()
functions are only called from weston_output_switch_mode(),
weston_output_move(), and bind_output() which must be ok as is.

weston_output_move() is only called from
weston_compositor_remove_output(), so it seems very unlikely that
switch_mode and output_move could happen as a part of the same output
reconfiguration.

So, reviewed-by me.


Thanks,
pq


More information about the wayland-devel mailing list