proto: add a blurb about events to send during stop_emulating

This should've been specified from day one but better late than never.
Since stop_emulating is supposed to signal termination of a client
emulating input, a logical assumption is that the device is set back to
neutral. Let's point it out that the real behavior is within EIS but
clients should behave predictably.
This commit is contained in:
Peter Hutterer 2025-12-10 15:17:22 +10:00
parent 8d6d23e84d
commit 8fd19d1ff9

View file

@ -612,6 +612,12 @@
It is a protocol violation to send this request for a client
of an ei_handshake.context_type other than sender.
It is up to the EIS implementation to reset the device state when a
stop_emulating event is received. The recommendation is that the device
is set to a neutral state such that all touches, buttons, keys are logically up.
A client should send the corresponding events before stop_emulating
to avoid any ambiguity on event interpretation.
</description>
<arg name="last_serial" type="uint32" summary="the last serial sent by the EIS implementation"/>
</request>
@ -1214,6 +1220,10 @@
It is a protocol violation to send this request for a client
of an ei_handshake.context_type other than sender.
A client should send a ei_button.button release event before
ei_device.stop_emulating to avoid any ambiguity on interpretation
of button events.
</description>
<arg name="button" type="uint32" summary="button code"/>
<arg name="state" type="uint32" enum="button_state"/>
@ -1290,6 +1300,10 @@
It is a protocol violation to send this request for a client
of an ei_handshake.context_type other than sender.
A client should send a ei_key.key release event before
ei_device.stop_emulating to avoid any ambiguity on interpretation
of key events.
</description>
<arg name="key" type="uint32" summary="the key code"/>
<arg name="state" type="uint32" enum="key_state" summary="logical state of the key"/>
@ -1442,6 +1456,10 @@
It is a protocol violation to send a touch down in the same
frame as a touch motion or touch up.
A client should send a ei_touch.up or ei_touch.cancel event before
ei_device.stop_emulating to avoid any ambiguity on interpretation of touch
events.
</description>
<arg name="touchid" type="uint32" summary="a unique touch id to identify this touch"/>
<arg name="x" type="float" summary="touch x coordinate in logical pixels"/>