diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 17a17690..d95e5a2f 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -2431,8 +2431,10 @@ The leave notification is sent before the enter notification for the new focus. - After this event client must assume that all keys, including modifiers, - are lifted and also it must stop key repeating if there's some going on. + After this event client must assume that no keys are pressed, + it must stop key repeating if there's some going on and until + it receives the next wl_keyboard.modifiers event, the client + must also assume no modifiers are active. @@ -2457,6 +2459,9 @@ If this event produces a change in modifiers, then the resulting wl_keyboard.modifiers event must be sent after this event. + + The compositor must not send this event without a surface of the client + having keyboard focus. @@ -2468,6 +2473,14 @@ Notifies clients that the modifier and/or group state has changed, and it should update its local state. + + The compositor may send this event without a surface of the client + having keyboard focus, for example to tie modifier information to + pointer focus instead. If a modifier event with pressed modifiers is sent + without a prior enter event, the client can assume the modifier state is + valid until it receives the next wl_keyboard.modifiers event. In order to + reset the modifier state again, the compositor can send a + wl_keyboard.modifiers event with no pressed modifiers.