[PATCH weston 1/6] xdg-shell: define the present/present_from_event() requests
Manuel Bachmann
manuel.bachmann at open.eurogiciel.org
Thu Apr 9 09:22:53 PDT 2015
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().
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
--
1.8.3.1
More information about the wayland-devel
mailing list