[PATCH wayland] server: add listener API for new clients

Bryce Harrington bryce at osg.samsung.com
Sat Feb 20 03:03:29 UTC 2016


On Thu, Feb 11, 2016 at 09:20:00PM +0900, nicesj at nicesj.com wrote:
> Using display object, Emit a signal if a new client is created.
> 
> In the server-side, we can get the destroy event of a client,
> But there is no way to get the created event of it.
> Of course, we can get the client object from the global registry
> binding callbacks.
> But it can be called several times with same client object.
> And even if A client creates display object,
> (so there is a connection), The server could not know that.
> There could be more use-cases not only for this.
> 
> Signed-off-by: Sung-jae Park <nicesj at nicesj.com>

Hi Sung-jae,

I'm a bit confused here; this patch appears to simply rename an existing
API call and move its docs from the .h to the .c.  Is there more code
that's missing, or am I misunderstanding the purpose of this patch?

Bryce
 
> diff --git a/src/wayland-server-core.h b/src/wayland-server-core.h
> index cb72981..1bc4d6b 100644
> --- a/src/wayland-server-core.h
> +++ b/src/wayland-server-core.h
> @@ -156,19 +156,8 @@ void
>  wl_display_add_destroy_listener(struct wl_display *display,
>  				struct wl_listener *listener);
>  
> -/** Add a listener for getting a notification of creation of clients.
> - *  If you add a listener, server will emits a signal if a new client
> - *  is created.
> - *
> - *  \ref wl_client_create
> - *  \ref wl_display
> - *  \ref wl_listener
> - *
> - * \param display The display object
> - * \param listener Signal handler object
> - */
>  void
> -wl_display_add_create_client_listener(struct wl_display *display,
> +wl_display_add_client_created_listener(struct wl_display *display,
>  					struct wl_listener *listener);
>  
>  struct wl_listener *
> diff --git a/src/wayland-server.c b/src/wayland-server.c
> index 0eff8f6..2857b1d 100644
> --- a/src/wayland-server.c
> +++ b/src/wayland-server.c
> @@ -1357,8 +1357,19 @@ wl_display_add_destroy_listener(struct wl_display *display,
>  	wl_signal_add(&display->destroy_signal, listener);
>  }
>  
> +/** Registers a listener for the client connection signal.
> + *  When a new client object is created, \a listener will be notified, carring
> + *  a pointer to the new wl_client object.
> + *
> + *  \ref wl_client_create
> + *  \ref wl_display
> + *  \ref wl_listener
> + *
> + * \param display The display object
> + * \param listener Signal handler object
> + */
>  WL_EXPORT void
> -wl_display_add_create_client_listener(struct wl_display *display,
> +wl_display_add_client_created_listener(struct wl_display *display,
>  					struct wl_listener *listener)
>  {
>  	wl_signal_add(&display->create_client_signal, listener);
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/wayland-devel


More information about the wayland-devel mailing list