On Fri, 13 Feb 2015 14:02:00 +0800
Jonas Ådahl <[email protected]> wrote:

> From: "Jasper St. Pierre" <[email protected]>
> 
> ---
>  desktop-shell/shell.c  | 10 +++++++++-
>  protocol/xdg-shell.xml |  5 +++++
>  2 files changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index 57f7335..0ae2ad3 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -3985,6 +3985,13 @@ static const struct weston_shell_client xdg_client = {
>  };
>  
>  static void
> +xdg_shell_destroy(struct wl_client *client,
> +               struct wl_resource *resource)
> +{
> +     wl_resource_destroy(resource);
> +}
> +
> +static void
>  xdg_use_unstable_version(struct wl_client *client,
>                        struct wl_resource *resource,
>                        int32_t version)
> @@ -4194,6 +4201,7 @@ shell_surface_is_xdg_popup(struct shell_surface *shsurf)
>  }
>  
>  static const struct xdg_shell_interface xdg_implementation = {
> +     xdg_shell_destroy,
>       xdg_use_unstable_version,
>       xdg_get_xdg_surface,
>       xdg_get_xdg_popup,
> @@ -4209,7 +4217,7 @@ xdg_shell_unversioned_dispatch(const void 
> *implementation,
>       struct wl_resource *resource = _target;
>       struct shell_client *sc = wl_resource_get_user_data(resource);
>  
> -     if (opcode != 0) {
> +     if (opcode != 1 /* XDG_SHELL_USE_UNSTABLE_VERSION */) {
>               wl_resource_post_error(resource,
>                                      WL_DISPLAY_ERROR_INVALID_OBJECT,
>                                      "must call use_unstable_version first");
> diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml
> index 14165dc..0181901 100644
> --- a/protocol/xdg-shell.xml
> +++ b/protocol/xdg-shell.xml
> @@ -52,6 +52,11 @@
>        <entry name="role" value="0" summary="given wl_surface has another 
> role"/>
>      </enum>
>  
> +    <request name="destroy" type="destructor">
> +      <description summary="destroy xdg_shell">
> +      </description>
> +    </request>
> +
>      <request name="use_unstable_version">
>        <description summary="enable use of this unstable version">
>       Negotiate the unstable version of the interface.  This

Hmm, changing the opcode of use_unstable_version seems fragile.

If we have a client using the old xdg-shell interface, it will send
use_unstable_version with opcode 0, which will cause an error in the
server due to mismatching message size (I hope) instead of a mismatch
in versions error.

Normally I would ask you to keep the use_unstable_version opcode
intact, but since this has already been merged in Gtk and mutter
(right?), fixing this would only cause more confusion when people mix
different versions. Therefore:

Reviewed-by: Pekka Paalanen <[email protected]>


Thanks,
pq
_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to