[PATCH weston 1/6] xdg-shell: define the present/present_from_event() requests
Derek Foreman
derekf at osg.samsung.com
Mon Sep 28 13:41:03 PDT 2015
On 09/04/15 11:22 AM, Manuel Bachmann wrote:
> xdg_surface_present() and xdg_surface_present_from_event()
> are new requests supposed to be called on an existing
> xdg_surface. They tell the compositor that the surface
> has new content which may be of interest to the user.
> The compositor may then choose to notify the user.
>
> xdg_surface_present_from_event() takes a serial coming
> from an input (wl_keyboard, wl_pointer, wl_touch) event as
> an argument. If the serial is valid and sufficiently recent,
> we can suppose the new content has been issued at the user's
> request ; the compositor may then choose to raise the
> surface directly. Otherwise, it just behaves like present().
I'm having a hard time thinking of a use case for
xdg_surface_present_from_event()... Picking an arbitrary motion event
from the past seems odd - the compositor probably won't keep track of
input serials in any way that makes this useful?
> Signed-off-by: Manuel Bachmann <manuel.bachmann at open.eurogiciel.org>
> ---
> desktop-shell/shell.c | 15 +++++++++++++++
> protocol/xdg-shell.xml | 20 ++++++++++++++++++++
> 2 files changed, 35 insertions(+)
>
> diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
> index f7c928e..d1d3f3c 100644
> --- a/desktop-shell/shell.c
> +++ b/desktop-shell/shell.c
> @@ -3923,6 +3923,19 @@ xdg_surface_set_minimized(struct wl_client *client,
> set_minimized(shsurf->surface);
> }
>
> +static void
> +xdg_surface_present(struct wl_client *client,
> + struct wl_resource *resource)
> +{
> +}
> +
> +static void
> +xdg_surface_present_from_event(struct wl_client *client,
> + struct wl_resource *resource,
> + uint32_t serial)
> +{
> +}
> +
> static const struct xdg_surface_interface xdg_surface_implementation = {
> xdg_surface_destroy,
> xdg_surface_set_parent,
> @@ -3938,6 +3951,8 @@ static const struct xdg_surface_interface xdg_surface_implementation = {
> xdg_surface_set_fullscreen,
> xdg_surface_unset_fullscreen,
> xdg_surface_set_minimized,
> + xdg_surface_present,
> + xdg_surface_present_from_event,
> };
>
> static void
> diff --git a/protocol/xdg-shell.xml b/protocol/xdg-shell.xml
> index 68cf469..10f82c5 100644
> --- a/protocol/xdg-shell.xml
> +++ b/protocol/xdg-shell.xml
> @@ -396,6 +396,26 @@
> </description>
> </request>
>
> + <request name="present">
> + <description summary="the window wants attention from the user">
> + The surface has new content and would like the compositor
> + to notify the user.
> + </description>
> + </request>
> +
> + <request name="present_from_event">
> + <description summary="the window needs attention from the user">
> + The surface has new content and would like the compositor
> + to notify the user.
> +
> + If a valid and sufficiently recent serial coming from an
> + input (keyboard, pointer, touch) event is passed as an
> + argument, the compositor may want to raise the surface.
> + Otherwise, the request just behaves like the "present" one.
> + </description>
> + <arg name="serial" type="uint" summary="serial of an input event"/>
> + </request>
> +
> <event name="close">
> <description summary="surface wants to be closed">
> The close event is sent by the compositor when the user
>
More information about the wayland-devel
mailing list