From ab47a58aa8ebcc85c71e81613fd818de489975cf Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Fri, 10 May 2024 19:10:15 +0200 Subject: [PATCH 1/2] protocol: add wl_keyboard.frame event Signed-off-by: Julian Orth --- protocol/wayland.xml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 97ad2eb2..6752cb7d 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -1874,7 +1874,7 @@ - + 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 @@ -2007,7 +2007,7 @@ - + The wl_pointer interface represents one or more input devices, such as mice, which control the pointer location and pointer_focus @@ -2420,7 +2420,7 @@ - + The wl_keyboard interface represents one or more keyboards associated with a seat. @@ -2582,9 +2582,26 @@ + + + + + + Indicates the end of a set of events that logically belong together. + + Clients should accumulate all wl_keyboard events until they receive a + frame event and then apply the events atomically. + + For example, if a leave event is followed by an enter event in the same + frame, then the client never lost keyboard focus even though it received + a leave event. A compositor might use this to atomically move the + keyboard focus between client surfaces or when sending a new + wl_keyboard.keymap. + + - + The wl_touch interface represents a touchscreen associated with a seat. From 002051b16df09d089b76493671db6eb25ac51a0a Mon Sep 17 00:00:00 2001 From: Julian Orth Date: Fri, 10 May 2024 19:13:35 +0200 Subject: [PATCH 2/2] protocol: disallow wl_keyboard.keymap with an active surface Signed-off-by: Julian Orth --- protocol/wayland.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/protocol/wayland.xml b/protocol/wayland.xml index 6752cb7d..c7230453 100644 --- a/protocol/wayland.xml +++ b/protocol/wayland.xml @@ -2455,6 +2455,9 @@ From version 7 onwards, the fd must be mapped with MAP_PRIVATE by the recipient, as MAP_SHARED may fail. + + From version 10 onwards, the compositor must not send this event while + the wl_keyboard has an active surface.