filtering: Simplify sequencing

This commit is contained in:
dcz 2025-10-28 14:25:42 +00:00
parent cfeb3e1c75
commit 712f2bac24

View file

@ -467,7 +467,11 @@
<!-- Alternative: compositor assumes the events are confirmed automatically. Downside: harder to specify the model of ordering events when some serials are missing. -->
Sequence:
The serial must always correspond to the last event after the last committed .activate which hasn't yet received a .keyboard_consume confirmation. Events must be confirmed in order. That is, if the compositor receives a serial corresponding to an event after such last event, it must issue the invalid_serial protocol error. The invalid_serial protocol error must also be issued if the serial corresponds to an already confirmed event, or no previous event, or an event arrived before the last committed .activate.
The keyboard begins to receive events after input_method.activate is committed.
The valid serial is the serial of the oldest wl_keyboard event which has been sent after input_method.activate but which hasn't yet received a .filter confirmation.
The compositor may raise the invalid_serial error in response toevents with serials it had not issued.
The compositor must ignore events with all other serials. (Particularly, this means events with repeating serials are accepted normally and are not ignored).
Events must be filtered in order.
</description>
<arg name="serial" type="uint"/>
<arg name="action" type="uint" enum="filter_action"/>