This CL updates the wl_touch interface with a shape event. The shape of a touch point is not relevant for most UI applications, but allows a better experience in some cases such as drawing app.
The shape event is used by the compositor to inform the client about changes in the shape of a touchpoint, which is approximated by an ellipse. The event is optional and only sent when compositor and the touch device support this type of information. The client is responsible for making a reasonable assumption about the touch shape if no shape is reported. Signed-off-by: Dennis Kempin <[email protected]> --- protocol/wayland.xml | 46 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 8739cd3..90a2453 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -1656,7 +1656,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 @@ -1765,7 +1765,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 @@ -2078,7 +2078,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. @@ -2192,7 +2192,7 @@ </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. @@ -2242,7 +2242,12 @@ <event name="frame"> <description summary="end of touch frame event"> - Indicates the end of a contact point list. + Indicates the end of a contract point list. The wayland protocol requires + touch point updates to be sent sequentially, however all events within a + frame should be considered one hardware event. A wl_touch.frames 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> @@ -2262,6 +2267,37 @@ <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. If the touch position changed + at the same time, the wl_touch.motion and wl_touch.shape are sent within the + same wl_touch.frame. Otherwise, only a wl_touch.shape is sent within this + wl_touch.frame. The protocol does not guarantee specific ordering of + wl_touch.shape and wl_touch.motion events. + + A touchpoint shape is approximated by an ellipse through an orientation and + the major and minor axis length. The major axis length describes the longest + diameter of the ellipse, while the minor axis length describes the shortest + diameter. Both are specified in surface coordinates. The orientation describes + the angle between the major axis and the surface x-axis and is normalized to + [0, 180) degrees. + 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 message. + </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 coordinates"/> + <arg name="minor" type="fixed" summary="length of the minor axis in surface coordinates"/> + <arg name="orientation" type="fixed" + summary="angle between major axis and surface x-axis in degrees"/> + </event> + </interface> <interface name="wl_output" version="2"> -- 2.8.0.rc3.226.g39d4020 _______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
