[PATCH v2 wayland 1/5] tests: sync example.xml with wayland.xml

Peter Hutterer peter.hutterer at who-t.net
Mon Jan 23 00:53:49 UTC 2017


On Fri, Jan 20, 2017 at 06:10:38AM -0800, Yong Bakos wrote:
> Peter,
> 
> > On Jan 11, 2017, at 4:13 PM, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> > 
> > These are the protocol.xml changes from:
> > 66a26aeb2a: protocol: Remove inconsistent line breaks
> > a26ed0949e: protocol: indentation fixes
> > 6a18a87727: protocol: Extend wl_touch with touchpoint shape and orientation
> > 
> > and a few other, smaller ones.
> > 
> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> 
> This brings the test xml files up to date for consistency, and is:
> 
> Reviewed-by: Yong Bakos <ybakos at humanoriented.com>
> Tested-by: Yong Bakos <ybakos at humanoriented.com>
> 
> yong
> 
> PS. How did you notice this?

it was quite technically tricky: I copied the protoco.xml into example.xml
when I was doing the since and wheel tilt bits and noticed there
was too much other stuff in the diff :)

Cheers,
   Peter

> 
> 
> > ---
> > Changes to v1:
> > - new in this series
> > 
> > tests/data/example-client.h | 112 +++++++++++++++++++--
> > tests/data/example-code.c   |  12 ++-
> > tests/data/example-server.h |  51 ++++++++--
> > tests/data/example.xml      | 231 ++++++++++++++++++++++++++------------------
> > 4 files changed, 294 insertions(+), 112 deletions(-)
> > 
> > diff --git a/tests/data/example-client.h b/tests/data/example-client.h
> > index b2bb24e..857aacf 100644
> > --- a/tests/data/example-client.h
> > +++ b/tests/data/example-client.h
> > @@ -108,8 +108,8 @@ extern const struct wl_interface wl_display_interface;
> >  * @page page_iface_wl_registry wl_registry
> >  * @section page_iface_wl_registry_desc Description
> >  *
> > - * The global registry object.  The server has a number of global
> > - * objects that are available to all clients.  These objects
> > + * The singleton global registry object.  The server has a number of
> > + * global objects that are available to all clients.  These objects
> >  * typically represent an actual object in the server (for example,
> >  * an input device) or they are singleton objects that provide
> >  * extension functionality.
> > @@ -134,8 +134,8 @@ extern const struct wl_interface wl_display_interface;
> > /**
> >  * @defgroup iface_wl_registry The wl_registry interface
> >  *
> > - * The global registry object.  The server has a number of global
> > - * objects that are available to all clients.  These objects
> > + * The singleton global registry object.  The server has a number of
> > + * global objects that are available to all clients.  These objects
> >  * typically represent an actual object in the server (for example,
> >  * an input device) or they are singleton objects that provide
> >  * extension functionality.
> > @@ -220,7 +220,7 @@ extern const struct wl_interface wl_shm_pool_interface;
> >  * @page page_iface_wl_shm wl_shm
> >  * @section page_iface_wl_shm_desc Description
> >  *
> > - * A global singleton object that provides support for shared
> > + * A singleton global object that provides support for shared
> >  * memory.
> >  *
> >  * Clients can create wl_shm_pool objects using the create_pool
> > @@ -235,7 +235,7 @@ extern const struct wl_interface wl_shm_pool_interface;
> > /**
> >  * @defgroup iface_wl_shm The wl_shm interface
> >  *
> > - * A global singleton object that provides support for shared
> > + * A singleton global object that provides support for shared
> >  * memory.
> >  *
> >  * Clients can create wl_shm_pool objects using the create_pool
> > @@ -4038,7 +4038,7 @@ enum wl_pointer_axis {
> >  */
> > enum wl_pointer_axis_source {
> > 	/**
> > -	 * a physical wheel
> > +	 * a physical wheel rotation
> > 	 */
> > 	WL_POINTER_AXIS_SOURCE_WHEEL = 0,
> > 	/**
> > @@ -4115,6 +4115,14 @@ struct wl_pointer_listener {
> > 	 * The location of the click is given by the last motion or enter
> > 	 * event. The time argument is a timestamp with millisecond
> > 	 * granularity, with an undefined base.
> > +	 *
> > +	 * The button is a button code as defined in the Linux kernel's
> > +	 * linux/input-event-codes.h header file, e.g. BTN_LEFT.
> > +	 *
> > +	 * Any 16-bit button code value is reserved for future additions to
> > +	 * the kernel's event code list. All other button codes above
> > +	 * 0xFFFF are currently undefined but may be used in future
> > +	 * versions of this protocol.
> > 	 * @param serial serial number of the button event
> > 	 * @param time timestamp with millisecond granularity
> > 	 * @param button button that produced the event
> > @@ -4731,7 +4739,14 @@ struct wl_touch_listener {
> > 	/**
> > 	 * end of touch frame event
> > 	 *
> > -	 * Indicates the end of a contact point list.
> > +	 * Indicates the end of a set of events that logically belong
> > +	 * together. A client is expected to accumulate the data in all
> > +	 * events within the frame before proceeding.
> > +	 *
> > +	 * A wl_touch.frame terminates at least one event but otherwise no
> > +	 * guarantee is provided about the set of events within a frame. A
> > +	 * client must assume that any state not updated in a frame is
> > +	 * unchanged from the previously known state.
> > 	 */
> > 	void (*frame)(void *data,
> > 		      struct wl_touch *wl_touch);
> > @@ -4747,6 +4762,79 @@ struct wl_touch_listener {
> > 	 */
> > 	void (*cancel)(void *data,
> > 		       struct wl_touch *wl_touch);
> > +	/**
> > +	 * update shape of touch point
> > +	 *
> > +	 * Sent when a touchpoint has changed its shape.
> > +	 *
> > +	 * This event does not occur on its own. It is sent before a
> > +	 * wl_touch.frame event and carries the new shape information for
> > +	 * any previously reported, or new touch points of that frame.
> > +	 *
> > +	 * Other events describing the touch point such as wl_touch.down,
> > +	 * wl_touch.motion or wl_touch.orientation may be sent within the
> > +	 * same wl_touch.frame. A client should treat these events as a
> > +	 * single logical touch point update. The order of wl_touch.shape,
> > +	 * wl_touch.orientation and wl_touch.motion is not guaranteed. A
> > +	 * wl_touch.down event is guaranteed to occur before the first
> > +	 * wl_touch.shape event for this touch ID but both events may occur
> > +	 * within the same wl_touch.frame.
> > +	 *
> > +	 * A touchpoint shape is approximated by an ellipse through the
> > +	 * major and minor axis length. The major axis length describes the
> > +	 * longer diameter of the ellipse, while the minor axis length
> > +	 * describes the shorter diameter. Major and minor are orthogonal
> > +	 * and both are specified in surface-local coordinates. The center
> > +	 * of the ellipse is always at the touchpoint location as reported
> > +	 * by wl_touch.down or wl_touch.move.
> > +	 *
> > +	 * This event is only sent by the compositor if the touch device
> > +	 * supports shape reports. The client has to make reasonable
> > +	 * assumptions about the shape if it did not receive this event.
> > +	 * @param id the unique ID of this touch point
> > +	 * @param major length of the major axis in surface-local coordinates
> > +	 * @param minor length of the minor axis in surface-local coordinates
> > +	 * @since 6
> > +	 */
> > +	void (*shape)(void *data,
> > +		      struct wl_touch *wl_touch,
> > +		      int32_t id,
> > +		      wl_fixed_t major,
> > +		      wl_fixed_t minor);
> > +	/**
> > +	 * update orientation of touch point
> > +	 *
> > +	 * Sent when a touchpoint has changed its orientation.
> > +	 *
> > +	 * This event does not occur on its own. It is sent before a
> > +	 * wl_touch.frame event and carries the new shape information for
> > +	 * any previously reported, or new touch points of that frame.
> > +	 *
> > +	 * Other events describing the touch point such as wl_touch.down,
> > +	 * wl_touch.motion or wl_touch.shape may be sent within the same
> > +	 * wl_touch.frame. A client should treat these events as a single
> > +	 * logical touch point update. The order of wl_touch.shape,
> > +	 * wl_touch.orientation and wl_touch.motion is not guaranteed. A
> > +	 * wl_touch.down event is guaranteed to occur before the first
> > +	 * wl_touch.orientation event for this touch ID but both events may
> > +	 * occur within the same wl_touch.frame.
> > +	 *
> > +	 * The orientation describes the clockwise angle of a touchpoint's
> > +	 * major axis to the positive surface y-axis and is normalized to
> > +	 * the -180 to +180 degree range. The granularity of orientation
> > +	 * depends on the touch device, some devices only support binary
> > +	 * rotation values between 0 and 90 degrees.
> > +	 *
> > +	 * This event is only sent by the compositor if the touch device
> > +	 * supports orientation reports.
> > +	 * @param id the unique ID of this touch point
> > +	 * @param orientation angle between major axis and positive surface y-axis in degrees
> > +	 * @since 6
> > +	 */
> > +	void (*orientation)(void *data,
> > +			    struct wl_touch *wl_touch,
> > +			    int32_t id,
> > +			    wl_fixed_t orientation);
> > };
> > 
> > /**
> > @@ -4782,6 +4870,14 @@ wl_touch_add_listener(struct wl_touch *wl_touch,
> >  * @ingroup iface_wl_touch
> >  */
> > #define WL_TOUCH_CANCEL_SINCE_VERSION 1
> > +/**
> > + * @ingroup iface_wl_touch
> > + */
> > +#define WL_TOUCH_SHAPE_SINCE_VERSION 6
> > +/**
> > + * @ingroup iface_wl_touch
> > + */
> > +#define WL_TOUCH_ORIENTATION_SINCE_VERSION 6
> > 
> > /**
> >  * @ingroup iface_wl_touch
> > diff --git a/tests/data/example-code.c b/tests/data/example-code.c
> > index 7dea253..bc03fe5 100644
> > --- a/tests/data/example-code.c
> > +++ b/tests/data/example-code.c
> > @@ -383,7 +383,7 @@ static const struct wl_message wl_seat_events[] = {
> > };
> > 
> > WL_EXPORT const struct wl_interface wl_seat_interface = {
> > -	"wl_seat", 5,
> > +	"wl_seat", 6,
> > 	4, wl_seat_requests,
> > 	2, wl_seat_events,
> > };
> > @@ -406,7 +406,7 @@ static const struct wl_message wl_pointer_events[] = {
> > };
> > 
> > WL_EXPORT const struct wl_interface wl_pointer_interface = {
> > -	"wl_pointer", 5,
> > +	"wl_pointer", 6,
> > 	2, wl_pointer_requests,
> > 	9, wl_pointer_events,
> > };
> > @@ -425,7 +425,7 @@ static const struct wl_message wl_keyboard_events[] = {
> > };
> > 
> > WL_EXPORT const struct wl_interface wl_keyboard_interface = {
> > -	"wl_keyboard", 5,
> > +	"wl_keyboard", 6,
> > 	1, wl_keyboard_requests,
> > 	6, wl_keyboard_events,
> > };
> > @@ -440,12 +440,14 @@ static const struct wl_message wl_touch_events[] = {
> > 	{ "motion", "uiff", types + 0 },
> > 	{ "frame", "", types + 0 },
> > 	{ "cancel", "", types + 0 },
> > +	{ "shape", "6iff", types + 0 },
> > +	{ "orientation", "6if", types + 0 },
> > };
> > 
> > WL_EXPORT const struct wl_interface wl_touch_interface = {
> > -	"wl_touch", 5,
> > +	"wl_touch", 6,
> > 	1, wl_touch_requests,
> > -	5, wl_touch_events,
> > +	7, wl_touch_events,
> > };
> > 
> > static const struct wl_message wl_output_requests[] = {
> > diff --git a/tests/data/example-server.h b/tests/data/example-server.h
> > index 22550f6..f22f70f 100644
> > --- a/tests/data/example-server.h
> > +++ b/tests/data/example-server.h
> > @@ -111,8 +111,8 @@ extern const struct wl_interface wl_display_interface;
> >  * @page page_iface_wl_registry wl_registry
> >  * @section page_iface_wl_registry_desc Description
> >  *
> > - * The global registry object.  The server has a number of global
> > - * objects that are available to all clients.  These objects
> > + * The singleton global registry object.  The server has a number of
> > + * global objects that are available to all clients.  These objects
> >  * typically represent an actual object in the server (for example,
> >  * an input device) or they are singleton objects that provide
> >  * extension functionality.
> > @@ -137,8 +137,8 @@ extern const struct wl_interface wl_display_interface;
> > /**
> >  * @defgroup iface_wl_registry The wl_registry interface
> >  *
> > - * The global registry object.  The server has a number of global
> > - * objects that are available to all clients.  These objects
> > + * The singleton global registry object.  The server has a number of
> > + * global objects that are available to all clients.  These objects
> >  * typically represent an actual object in the server (for example,
> >  * an input device) or they are singleton objects that provide
> >  * extension functionality.
> > @@ -223,7 +223,7 @@ extern const struct wl_interface wl_shm_pool_interface;
> >  * @page page_iface_wl_shm wl_shm
> >  * @section page_iface_wl_shm_desc Description
> >  *
> > - * A global singleton object that provides support for shared
> > + * A singleton global object that provides support for shared
> >  * memory.
> >  *
> >  * Clients can create wl_shm_pool objects using the create_pool
> > @@ -238,7 +238,7 @@ extern const struct wl_interface wl_shm_pool_interface;
> > /**
> >  * @defgroup iface_wl_shm The wl_shm interface
> >  *
> > - * A global singleton object that provides support for shared
> > + * A singleton global object that provides support for shared
> >  * memory.
> >  *
> >  * Clients can create wl_shm_pool objects using the create_pool
> > @@ -3247,7 +3247,7 @@ enum wl_pointer_axis {
> >  */
> > enum wl_pointer_axis_source {
> > 	/**
> > -	 * a physical wheel
> > +	 * a physical wheel rotation
> > 	 */
> > 	WL_POINTER_AXIS_SOURCE_WHEEL = 0,
> > 	/**
> > @@ -3699,6 +3699,8 @@ struct wl_touch_interface {
> > #define WL_TOUCH_MOTION 2
> > #define WL_TOUCH_FRAME 3
> > #define WL_TOUCH_CANCEL 4
> > +#define WL_TOUCH_SHAPE 5
> > +#define WL_TOUCH_ORIENTATION 6
> > 
> > /**
> >  * @ingroup iface_wl_touch
> > @@ -3720,6 +3722,14 @@ struct wl_touch_interface {
> >  * @ingroup iface_wl_touch
> >  */
> > #define WL_TOUCH_CANCEL_SINCE_VERSION 1
> > +/**
> > + * @ingroup iface_wl_touch
> > + */
> > +#define WL_TOUCH_SHAPE_SINCE_VERSION 6
> > +/**
> > + * @ingroup iface_wl_touch
> > + */
> > +#define WL_TOUCH_ORIENTATION_SINCE_VERSION 6
> > 
> > /**
> >  * @ingroup iface_wl_touch
> > @@ -3794,6 +3804,33 @@ wl_touch_send_cancel(struct wl_resource *resource_)
> > 	wl_resource_post_event(resource_, WL_TOUCH_CANCEL);
> > }
> > 
> > +/**
> > + * @ingroup iface_wl_touch
> > + * Sends an shape event to the client owning the resource.
> > + * @param resource_ The client's resource
> > + * @param id the unique ID of this touch point
> > + * @param major length of the major axis in surface-local coordinates
> > + * @param minor length of the minor axis in surface-local coordinates
> > + */
> > +static inline void
> > +wl_touch_send_shape(struct wl_resource *resource_, int32_t id, wl_fixed_t major, wl_fixed_t minor)
> > +{
> > +	wl_resource_post_event(resource_, WL_TOUCH_SHAPE, id, major, minor);
> > +}
> > +
> > +/**
> > + * @ingroup iface_wl_touch
> > + * Sends an orientation event to the client owning the resource.
> > + * @param resource_ The client's resource
> > + * @param id the unique ID of this touch point
> > + * @param orientation angle between major axis and positive surface y-axis in degrees
> > + */
> > +static inline void
> > +wl_touch_send_orientation(struct wl_resource *resource_, int32_t id, wl_fixed_t orientation)
> > +{
> > +	wl_resource_post_event(resource_, WL_TOUCH_ORIENTATION, id, orientation);
> > +}
> > +
> > #ifndef WL_OUTPUT_SUBPIXEL_ENUM
> > #define WL_OUTPUT_SUBPIXEL_ENUM
> > /**
> > diff --git a/tests/data/example.xml b/tests/data/example.xml
> > index 6c6d078..22dcffd 100644
> > --- a/tests/data/example.xml
> > +++ b/tests/data/example.xml
> > @@ -104,8 +104,8 @@
> > 
> >   <interface name="wl_registry" version="1">
> >     <description summary="global registry object">
> > -      The global registry object.  The server has a number of global
> > -      objects that are available to all clients.  These objects
> > +      The singleton global registry object.  The server has a number of
> > +      global objects that are available to all clients.  These objects
> >       typically represent an actual object in the server (for example,
> >       an input device) or they are singleton objects that provide
> >       extension functionality.
> > @@ -129,7 +129,7 @@
> >     <request name="bind">
> >       <description summary="bind an object to the display">
> > 	Binds a new, client-created object to the server using the
> > -        specified name as the identifier.
> > +	specified name as the identifier.
> >       </description>
> >       <arg name="name" type="uint" summary="unique numeric name of the object"/>
> >       <arg name="id" type="new_id" summary="bounded object"/>
> > @@ -139,9 +139,9 @@
> >       <description summary="announce global object">
> > 	Notify the client of global objects.
> > 
> > -        The event notifies the client that a global object with
> > -        the given name is now available, and it implements the
> > -        given version of the given interface.
> > +	The event notifies the client that a global object with
> > +	the given name is now available, and it implements the
> > +	given version of the given interface.
> >       </description>
> >       <arg name="name" type="uint" summary="numeric name of the global object"/>
> >       <arg name="interface" type="string" summary="interface implemented by the object"/>
> > @@ -152,10 +152,10 @@
> >       <description summary="announce removal of global object">
> > 	Notify the client of removed global objects.
> > 
> > -        This event notifies the client that the global identified
> > -        by name is no longer available.  If the client bound to
> > -        the global using the bind request, the client should now
> > -        destroy that object.
> > +	This event notifies the client that the global identified
> > +	by name is no longer available.  If the client bound to
> > +	the global using the bind request, the client should now
> > +	destroy that object.
> > 
> > 	The object remains valid and requests to the object will be
> > 	ignored until the client destroys it, to avoid races between
> > @@ -226,7 +226,6 @@
> > 	so it is valid to destroy the pool immediately after creating
> > 	a buffer from it.
> >       </description>
> > -
> >       <arg name="id" type="new_id" interface="wl_buffer" summary="buffer to create"/>
> >       <arg name="offset" type="int" summary="buffer byte offset within the pool"/>
> >       <arg name="width" type="int" summary="buffer width, in pixels"/>
> > @@ -252,14 +251,13 @@
> > 	created, but using the new size.  This request can only be
> > 	used to make the pool bigger.
> >       </description>
> > -
> >       <arg name="size" type="int" summary="new size of the pool, in bytes"/>
> >     </request>
> >   </interface>
> > 
> >   <interface name="wl_shm" version="1">
> >     <description summary="shared memory support">
> > -      A global singleton object that provides support for shared
> > +      A singleton global object that provides support for shared
> >       memory.
> > 
> >       Clients can create wl_shm_pool objects using the create_pool
> > @@ -357,9 +355,8 @@
> > 
> > 	The pool can be used to create shared memory based buffer
> > 	objects.  The server will mmap size bytes of the passed file
> > -        descriptor, to use as backing memory for the pool.
> > +	descriptor, to use as backing memory for the pool.
> >       </description>
> > -
> >       <arg name="id" type="new_id" interface="wl_shm_pool" summary="pool to create"/>
> >       <arg name="fd" type="fd" summary="file descriptor for the pool"/>
> >       <arg name="size" type="int" summary="pool size, in bytes"/>
> > @@ -449,7 +446,6 @@
> > 	wl_data_source.cancelled. Clients may still use this event in
> > 	conjunction with wl_data_source.action for feedback.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the accept request"/>
> >       <arg name="mime_type" type="string" allow-null="true" summary="mime type accepted by the client"/>
> >     </request>
> > @@ -487,7 +483,6 @@
> > 	Sent immediately after creating the wl_data_offer object.  One
> > 	event per offered mime type.
> >       </description>
> > -
> >       <arg name="mime_type" type="string" summary="offered mime type"/>
> >     </event>
> > 
> > @@ -635,7 +630,6 @@
> > 
> > 	Used for feedback during drag-and-drop.
> >       </description>
> > -
> >       <arg name="mime_type" type="string" allow-null="true" summary="mime type accepted by the target"/>
> >     </event>
> > 
> > @@ -645,7 +639,6 @@
> > 	specified mime type over the passed file descriptor, then
> > 	close it.
> >       </description>
> > -
> >       <arg name="mime_type" type="string" summary="mime type for the data"/>
> >       <arg name="fd" type="fd" summary="file descriptor for the data"/>
> >     </event>
> > @@ -823,7 +816,6 @@
> > 	object will send out data_offer.offer events to describe the
> > 	mime types it offers.
> >       </description>
> > -
> >       <arg name="id" type="new_id" interface="wl_data_offer" summary="the new data_offer object"/>
> >     </event>
> > 
> > @@ -834,7 +826,6 @@
> > 	enter time is provided by the x and y arguments, in surface-local
> > 	coordinates.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the enter event"/>
> >       <arg name="surface" type="object" interface="wl_surface" summary="client surface entered"/>
> >       <arg name="x" type="fixed" summary="surface-local x coordinate"/>
> > @@ -924,14 +915,14 @@
> > 
> >     <request name="create_data_source">
> >       <description summary="create a new data source">
> > -        Create a new data source.
> > +	Create a new data source.
> >       </description>
> >       <arg name="id" type="new_id" interface="wl_data_source" summary="data source to create"/>
> >     </request>
> > 
> >     <request name="get_data_device">
> >       <description summary="create a new data device">
> > -        Create a new data device for a given seat.
> > +	Create a new data device for a given seat.
> >       </description>
> >       <arg name="id" type="new_id" interface="wl_data_device" summary="data device to create"/>
> >       <arg name="seat" type="object" interface="wl_seat" summary="seat associated with the data device"/>
> > @@ -1090,7 +1081,6 @@
> > 
> > 	The flags argument controls details of the transient behaviour.
> >       </description>
> > -
> >       <arg name="parent" type="object" interface="wl_surface" summary="parent surface"/>
> >       <arg name="x" type="int" summary="surface-local x coordinate"/>
> >       <arg name="y" type="int" summary="surface-local y coordinate"/>
> > @@ -1173,7 +1163,6 @@
> > 	corner of the surface relative to the upper left corner of the
> > 	parent surface, in surface-local coordinates.
> >       </description>
> > -
> >       <arg name="seat" type="object" interface="wl_seat" summary="seat whose pointer is used"/>
> >       <arg name="serial" type="uint" summary="serial number of the implicit grab on the pointer"/>
> >       <arg name="parent" type="object" interface="wl_surface" summary="parent surface"/>
> > @@ -1260,7 +1249,6 @@
> > 	The width and height arguments specify the size of the window
> > 	in surface-local coordinates.
> >       </description>
> > -
> >       <arg name="edges" type="uint" enum="resize" summary="how the surface was resized"/>
> >       <arg name="width" type="int" summary="new width of the surface"/>
> >       <arg name="height" type="int" summary="new height of the surface"/>
> > @@ -1320,7 +1308,7 @@
> > 
> >     <enum name="error">
> >       <description summary="wl_surface error values">
> > -        These errors can be emitted in response to wl_surface requests.
> > +	These errors can be emitted in response to wl_surface requests.
> >       </description>
> >       <entry name="invalid_scale" value="0" summary="buffer scale value is invalid"/>
> >       <entry name="invalid_transform" value="1" summary="buffer transform value is invalid"/>
> > @@ -1374,7 +1362,6 @@
> > 	If wl_surface.attach is sent with a NULL wl_buffer, the
> > 	following wl_surface.commit will remove the surface content.
> >       </description>
> > -
> >       <arg name="buffer" type="object" interface="wl_buffer" allow-null="true"
> > 	   summary="buffer of surface contents"/>
> >       <arg name="x" type="int" summary="surface-local x coordinate"/>
> > @@ -1405,7 +1392,6 @@
> > 	which uses buffer coordinates instead of surface coordinates,
> > 	and is probably the preferred and intuitive way of doing this.
> >       </description>
> > -
> >       <arg name="x" type="int" summary="surface-local x coordinate"/>
> >       <arg name="y" type="int" summary="surface-local y coordinate"/>
> >       <arg name="width" type="int" summary="width of damage rectangle"/>
> > @@ -1447,7 +1433,6 @@
> > 	The callback_data passed in the callback is the current time, in
> > 	milliseconds, with an undefined base.
> >       </description>
> > -
> >       <arg name="callback" type="new_id" interface="wl_callback" summary="callback object for the frame request"/>
> >     </request>
> > 
> > @@ -1478,7 +1463,6 @@
> > 	destroyed immediately. A NULL wl_region causes the pending opaque
> > 	region to be set to empty.
> >       </description>
> > -
> >       <arg name="region" type="object" interface="wl_region" allow-null="true"
> > 	   summary="opaque region of the surface"/>
> >     </request>
> > @@ -1508,7 +1492,6 @@
> > 	immediately. A NULL wl_region causes the input region to be set
> > 	to infinite.
> >       </description>
> > -
> >       <arg name="region" type="object" interface="wl_region" allow-null="true"
> > 	   summary="input region of the surface"/>
> >     </request>
> > @@ -1661,7 +1644,6 @@
> > 	two requests separately and only transform from one to the other
> > 	after receiving the wl_surface.commit.
> >       </description>
> > -
> >       <arg name="x" type="int" summary="buffer-local x coordinate"/>
> >       <arg name="y" type="int" summary="buffer-local y coordinate"/>
> >       <arg name="width" type="int" summary="width of damage rectangle"/>
> > @@ -1669,7 +1651,7 @@
> >     </request>
> >    </interface>
> > 
> > -  <interface name="wl_seat" version="5">
> > +  <interface name="wl_seat" version="6">
> >     <description summary="group of input devices">
> >       A seat is a group of keyboards, pointer and touch devices. This
> >       object is published as a global during start up, or when such a
> > @@ -1679,8 +1661,8 @@
> > 
> >     <enum name="capability" bitfield="true">
> >       <description summary="seat capability bitmask">
> > -        This is a bitmask of capabilities this seat has; if a member is
> > -        set, then it is present on the seat.
> > +	This is a bitmask of capabilities this seat has; if a member is
> > +	set, then it is present on the seat.
> >       </description>
> >       <entry name="pointer" value="1" summary="the seat has pointer devices"/>
> >       <entry name="keyboard" value="2" summary="the seat has one or more keyboards"/>
> > @@ -1778,7 +1760,7 @@
> > 
> >   </interface>
> > 
> > -  <interface name="wl_pointer" version="5">
> > +  <interface name="wl_pointer" version="6">
> >     <description summary="pointer input device">
> >       The wl_pointer interface represents one or more input devices,
> >       such as mice, which control the pointer location and pointer_focus
> > @@ -1828,7 +1810,6 @@
> > 	cursor ends, the current and pending input regions become
> > 	undefined, and the wl_surface is unmapped.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the enter event"/>
> >       <arg name="surface" type="object" interface="wl_surface" allow-null="true"
> > 	   summary="pointer surface"/>
> > @@ -1845,7 +1826,6 @@
> > 	is undefined and a client should respond to this event by setting
> > 	an appropriate pointer image with the set_cursor request.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the enter event"/>
> >       <arg name="surface" type="object" interface="wl_surface" summary="surface entered by the pointer"/>
> >       <arg name="surface_x" type="fixed" summary="surface-local x coordinate"/>
> > @@ -1870,7 +1850,6 @@
> > 	surface_x and surface_y are the location relative to the
> > 	focused surface.
> >       </description>
> > -
> >       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
> >       <arg name="surface_x" type="fixed" summary="surface-local x coordinate"/>
> >       <arg name="surface_y" type="fixed" summary="surface-local y coordinate"/>
> > @@ -1878,7 +1857,7 @@
> > 
> >     <enum name="button_state">
> >       <description summary="physical button state">
> > -        Describes the physical state of a button that produced the button
> > +	Describes the physical state of a button that produced the button
> > 	event.
> >       </description>
> >       <entry name="released" value="0" summary="the button is not pressed"/>
> > @@ -1891,10 +1870,17 @@
> > 
> > 	The location of the click is given by the last motion or
> > 	enter event.
> > -        The time argument is a timestamp with millisecond
> > -        granularity, with an undefined base.
> > +	The time argument is a timestamp with millisecond
> > +	granularity, with an undefined base.
> > +
> > +	The button is a button code as defined in the Linux kernel's
> > +	linux/input-event-codes.h header file, e.g. BTN_LEFT.
> > +
> > +	Any 16-bit button code value is reserved for future additions to the
> > +	kernel's event code list. All other button codes above 0xFFFF are
> > +	currently undefined but may be used in future versions of this
> > +	protocol.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the button event"/>
> >       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
> >       <arg name="button" type="uint" summary="button that produced the event"/>
> > @@ -1928,7 +1914,6 @@
> > 	When applicable, a client can transform its content relative to the
> > 	scroll distance.
> >       </description>
> > -
> >       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
> >       <arg name="axis" type="uint" enum="axis" summary="axis type"/>
> >       <arg name="value" type="fixed" summary="length of vector in surface-local coordinate space"/>
> > @@ -2002,7 +1987,7 @@
> > 	the vertical motion of a device is converted to scroll events while
> > 	a button is held down.
> >       </description>
> > -      <entry name="wheel" value="0" summary="a physical wheel" />
> > +      <entry name="wheel" value="0" summary="a physical wheel rotation" />
> >       <entry name="finger" value="1" summary="finger on a touch surface" />
> >       <entry name="continuous" value="2" summary="continuous coordinate space"/>
> >     </enum>
> > @@ -2092,7 +2077,7 @@
> >     </event>
> >   </interface>
> > 
> > -  <interface name="wl_keyboard" version="5">
> > +  <interface name="wl_keyboard" version="6">
> >     <description summary="keyboard input device">
> >       The wl_keyboard interface represents one or more keyboards
> >       associated with a seat.
> > @@ -2106,7 +2091,7 @@
> >       <entry name="no_keymap" value="0"
> > 	     summary="no keymap; client must understand how to interpret the raw keycode"/>
> >       <entry name="xkb_v1" value="1"
> > -             summary="libxkbcommon compatible; to determine the xkb keycode, clients must add 8 to the key event keycode"/>
> > +	     summary="libxkbcommon compatible; to determine the xkb keycode, clients must add 8 to the key event keycode"/>
> >     </enum>
> > 
> >     <event name="keymap">
> > @@ -2152,10 +2137,9 @@
> >     <event name="key">
> >       <description summary="key event">
> > 	A key was pressed or released.
> > -        The time argument is a timestamp with millisecond
> > -        granularity, with an undefined base.
> > +	The time argument is a timestamp with millisecond
> > +	granularity, with an undefined base.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the key event"/>
> >       <arg name="time" type="uint" summary="timestamp with millisecond granularity"/>
> >       <arg name="key" type="uint" summary="key that produced the event"/>
> > @@ -2167,7 +2151,6 @@
> > 	Notifies clients that the modifier and/or group state has
> > 	changed, and it should update its local state.
> >       </description>
> > -
> >       <arg name="serial" type="uint" summary="serial number of the modifiers event"/>
> >       <arg name="mods_depressed" type="uint" summary="depressed modifiers"/>
> >       <arg name="mods_latched" type="uint" summary="latched modifiers"/>
> > @@ -2185,28 +2168,27 @@
> > 
> >     <event name="repeat_info" since="4">
> >       <description summary="repeat rate and delay">
> > -        Informs the client about the keyboard's repeat rate and delay.
> > +	Informs the client about the keyboard's repeat rate and delay.
> > 
> > -        This event is sent as soon as the wl_keyboard object has been created,
> > -        and is guaranteed to be received by the client before any key press
> > -        event.
> > +	This event is sent as soon as the wl_keyboard object has been created,
> > +	and is guaranteed to be received by the client before any key press
> > +	event.
> > 
> > -        Negative values for either rate or delay are illegal. A rate of zero
> > -        will disable any repeating (regardless of the value of delay).
> > +	Negative values for either rate or delay are illegal. A rate of zero
> > +	will disable any repeating (regardless of the value of delay).
> > 
> > -        This event can be sent later on as well with a new value if necessary,
> > -        so clients should continue listening for the event past the creation
> > -        of wl_keyboard.
> > +	This event can be sent later on as well with a new value if necessary,
> > +	so clients should continue listening for the event past the creation
> > +	of wl_keyboard.
> >       </description>
> > -
> >       <arg name="rate" type="int"
> > -           summary="the rate of repeating keys in characters per second"/>
> > +	   summary="the rate of repeating keys in characters per second"/>
> >       <arg name="delay" type="int"
> > -           summary="delay in milliseconds since key down until repeating starts"/>
> > +	   summary="delay in milliseconds since key down until repeating starts"/>
> >     </event>
> >   </interface>
> > 
> > -  <interface name="wl_touch" version="5">
> > +  <interface name="wl_touch" version="6">
> >     <description summary="touchscreen input device">
> >       The wl_touch interface represents a touchscreen
> >       associated with a seat.
> > @@ -2256,7 +2238,14 @@
> > 
> >     <event name="frame">
> >       <description summary="end of touch frame event">
> > -	Indicates the end of a contact point list.
> > +	Indicates the end of a set of events that logically belong together.
> > +	A client is expected to accumulate the data in all events within the
> > +	frame before proceeding.
> > +
> > +	A wl_touch.frame terminates at least one event but otherwise no
> > +	guarantee is provided about the set of events within a frame. A client
> > +	must assume that any state not updated in a frame is unchanged from the
> > +	previously known state.
> >       </description>
> >     </event>
> > 
> > @@ -2276,6 +2265,71 @@
> >     <request name="release" type="destructor" since="3">
> >       <description summary="release the touch object"/>
> >     </request>
> > +
> > +    <!-- Version 6 additions -->
> > +
> > +    <event name="shape" since="6">
> > +      <description summary="update shape of touch point">
> > +	Sent when a touchpoint has changed its shape.
> > +
> > +	This event does not occur on its own. It is sent before a
> > +	wl_touch.frame event and carries the new shape information for
> > +	any previously reported, or new touch points of that frame.
> > +
> > +	Other events describing the touch point such as wl_touch.down,
> > +	wl_touch.motion or wl_touch.orientation may be sent within the
> > +	same wl_touch.frame. A client should treat these events as a single
> > +	logical touch point update. The order of wl_touch.shape,
> > +	wl_touch.orientation and wl_touch.motion is not guaranteed.
> > +	A wl_touch.down event is guaranteed to occur before the first
> > +	wl_touch.shape event for this touch ID but both events may occur within
> > +	the same wl_touch.frame.
> > +
> > +	A touchpoint shape is approximated by an ellipse through the major and
> > +	minor axis length. The major axis length describes the longer diameter
> > +	of the ellipse, while the minor axis length describes the shorter
> > +	diameter. Major and minor are orthogonal and both are specified in
> > +	surface-local coordinates. The center of the ellipse is always at the
> > +	touchpoint location as reported by wl_touch.down or wl_touch.move.
> > +
> > +	This event is only sent by the compositor if the touch device supports
> > +	shape reports. The client has to make reasonable assumptions about the
> > +	shape if it did not receive this event.
> > +      </description>
> > +      <arg name="id" type="int" summary="the unique ID of this touch point"/>
> > +      <arg name="major" type="fixed" summary="length of the major axis in surface-local coordinates"/>
> > +      <arg name="minor" type="fixed" summary="length of the minor axis in surface-local coordinates"/>
> > +    </event>
> > +
> > +    <event name="orientation" since="6">
> > +      <description summary="update orientation of touch point">
> > +	Sent when a touchpoint has changed its orientation.
> > +
> > +	This event does not occur on its own. It is sent before a
> > +	wl_touch.frame event and carries the new shape information for
> > +	any previously reported, or new touch points of that frame.
> > +
> > +	Other events describing the touch point such as wl_touch.down,
> > +	wl_touch.motion or wl_touch.shape may be sent within the
> > +	same wl_touch.frame. A client should treat these events as a single
> > +	logical touch point update. The order of wl_touch.shape,
> > +	wl_touch.orientation and wl_touch.motion is not guaranteed.
> > +	A wl_touch.down event is guaranteed to occur before the first
> > +	wl_touch.orientation event for this touch ID but both events may occur
> > +	within the same wl_touch.frame.
> > +
> > +	The orientation describes the clockwise angle of a touchpoint's major
> > +	axis to the positive surface y-axis and is normalized to the -180 to
> > +	+180 degree range. The granularity of orientation depends on the touch
> > +	device, some devices only support binary rotation values between 0 and
> > +	90 degrees.
> > +
> > +	This event is only sent by the compositor if the touch device supports
> > +	orientation reports.
> > +      </description>
> > +      <arg name="id" type="int" summary="the unique ID of this touch point"/>
> > +      <arg name="orientation" type="fixed" summary="angle between major axis and positive surface y-axis in degrees"/>
> > +    </event>
> >   </interface>
> > 
> >   <interface name="wl_output" version="3">
> > @@ -2315,7 +2369,6 @@
> > 	compositor will still be able to scan out directly from client
> > 	surfaces.
> >       </description>
> > -
> >       <entry name="normal" value="0" summary="no transform"/>
> >       <entry name="90" value="1" summary="90 degrees counter-clockwise"/>
> >       <entry name="180" value="2" summary="180 degrees counter-clockwise"/>
> > @@ -2372,10 +2425,10 @@
> > 	mode that was received with the current flag set.
> > 
> > 	The size of a mode is given in physical hardware units of
> > -        the output device. This is not necessarily the same as
> > -        the output size in the global compositor space. For instance,
> > -        the output may be scaled, as described in wl_output.scale,
> > -        or transformed, as described in wl_output.transform.
> > +	the output device. This is not necessarily the same as
> > +	the output size in the global compositor space. For instance,
> > +	the output may be scaled, as described in wl_output.scale,
> > +	or transformed, as described in wl_output.transform.
> >       </description>
> >       <arg name="flags" type="uint" enum="mode" summary="bitfield of mode flags"/>
> >       <arg name="width" type="int" summary="width of the mode in hardware units"/>
> > @@ -2387,20 +2440,20 @@
> > 
> >     <event name="done" since="2">
> >       <description summary="sent all information about output">
> > -        This event is sent after all other properties have been
> > -        sent after binding to the output object and after any
> > -        other property changes done after that. This allows
> > -        changes to the output properties to be seen as
> > -        atomic, even if they happen via multiple events.
> > +	This event is sent after all other properties have been
> > +	sent after binding to the output object and after any
> > +	other property changes done after that. This allows
> > +	changes to the output properties to be seen as
> > +	atomic, even if they happen via multiple events.
> >       </description>
> >     </event>
> > 
> >     <event name="scale" since="2">
> >       <description summary="output scaling properties">
> > 	This event contains scaling geometry information
> > -        that is not in the geometry event. It may be sent after
> > -        binding the output object or if the output scale changes
> > -        later. If it is not sent, the client should assume a
> > +	that is not in the geometry event. It may be sent after
> > +	binding the output object or if the output scale changes
> > +	later. If it is not sent, the client should assume a
> > 	scale of 1.
> > 
> > 	A scale larger than 1 means that the compositor will
> > @@ -2447,7 +2500,6 @@
> >       <description summary="add rectangle to region">
> > 	Add the specified rectangle to the region.
> >       </description>
> > -
> >       <arg name="x" type="int" summary="region-local x coordinate"/>
> >       <arg name="y" type="int" summary="region-local y coordinate"/>
> >       <arg name="width" type="int" summary="rectangle width"/>
> > @@ -2458,7 +2510,6 @@
> >       <description summary="subtract rectangle from region">
> > 	Subtract the specified rectangle from the region.
> >       </description>
> > -
> >       <arg name="x" type="int" summary="region-local x coordinate"/>
> >       <arg name="y" type="int" summary="region-local y coordinate"/>
> >       <arg name="width" type="int" summary="rectangle width"/>
> > @@ -2499,7 +2550,7 @@
> > 
> >     <enum name="error">
> >       <entry name="bad_surface" value="0"
> > -             summary="the to-be sub-surface is invalid"/>
> > +	     summary="the to-be sub-surface is invalid"/>
> >     </enum>
> > 
> >     <request name="get_subsurface">
> > @@ -2512,13 +2563,12 @@
> > 	must not have an existing wl_subsurface object. Otherwise a protocol
> > 	error is raised.
> >       </description>
> > -
> >       <arg name="id" type="new_id" interface="wl_subsurface"
> > -           summary="the new sub-surface object ID"/>
> > +	   summary="the new sub-surface object ID"/>
> >       <arg name="surface" type="object" interface="wl_surface"
> > -           summary="the surface to be turned into a sub-surface"/>
> > +	   summary="the surface to be turned into a sub-surface"/>
> >       <arg name="parent" type="object" interface="wl_surface"
> > -           summary="the parent surface"/>
> > +	   summary="the parent surface"/>
> >     </request>
> >   </interface>
> > 
> > @@ -2587,7 +2637,7 @@
> > 
> >     <enum name="error">
> >       <entry name="bad_surface" value="0"
> > -             summary="wl_surface is not a sibling or the parent"/>
> > +	     summary="wl_surface is not a sibling or the parent"/>
> >     </enum>
> > 
> >     <request name="set_position">
> > @@ -2609,7 +2659,6 @@
> > 
> > 	The initial position is 0, 0.
> >       </description>
> > -
> >       <arg name="x" type="int" summary="x coordinate in the parent surface"/>
> >       <arg name="y" type="int" summary="y coordinate in the parent surface"/>
> >     </request>
> > @@ -2632,9 +2681,8 @@
> > 	A new sub-surface is initially added as the top-most in the stack
> > 	of its siblings and parent.
> >       </description>
> > -
> >       <arg name="sibling" type="object" interface="wl_surface"
> > -           summary="the reference surface"/>
> > +	   summary="the reference surface"/>
> >     </request>
> > 
> >     <request name="place_below">
> > @@ -2642,9 +2690,8 @@
> > 	The sub-surface is placed just below the reference surface.
> > 	See wl_subsurface.place_above.
> >       </description>
> > -
> >       <arg name="sibling" type="object" interface="wl_surface"
> > -           summary="the reference surface"/>
> > +	   summary="the reference surface"/>
> >     </request>
> > 
> >     <request name="set_sync">
> > -- 
> > 2.9.3
> > 
> > _______________________________________________
> > 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