wlroots/types
Brian Ashworth f2d3b1000f Introduce wlr_keyboard_group
A wlr_keyboard_group allows for multiple keyboard devices to be
combined into one logical keyboard. Each keyboard device can only be
added to one keyboard group. This helps with the situation where one
physical keyboard is exposed as multiple keyboard devices. It is up to
the compositors on how they group keyboards together, if at all.

Since a wlr_keyboard_group is one logical keyboard, the keys are a set.
This means that if a key is pressed on multiple keyboard devices, the
key event will only be emitted once, but the internal state will count
the number of devices that the key is pressed on. Likewise, the key
release will not be emitted until the key is released from all devices.
If the compositor wants access to which keys are pressed and released
on each keyboard device, the events for those devices can be listened
to, as they currently are, in addition to the group keyboard's events.

Also, all keyboard devices in the group must share the same keymap. If
the keymap's differ, the keyboard device will not be able to be added
to the group. Once in the group, if the keymap or effective layout for
one keyboard device changes, it will be synced to all keyboard devices
in the group. The repeat info and keyboard modifiers are also synced
2019-11-05 20:05:49 +01:00
..
data_device Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
seat wlr_seat_touch: Destroy the touchpoint on client destroy 2019-09-14 16:19:07 +03:00
tablet_v2 Fix heap-use-after-free in wlr_send_tablet_v2_tablet_pad_leave 2019-10-27 19:01:16 +01:00
xdg_shell Revert "wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfaces" 2019-08-27 11:12:09 +09:00
xdg_shell_v6 Revert "wlr_xdg_popup: don't treat all surfaces of grabbing client as grabbing surfaces" 2019-08-27 11:12:09 +09:00
meson.build Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_box.c wlr_box: properly calculate closest point for non-positive area boxes 2019-10-11 23:43:13 +03:00
wlr_buffer.c buffer: add wlr_buffer_get_dmabuf 2019-06-07 09:06:11 -04:00
wlr_compositor.c compositor: disconnect client on OOM in create_surface 2019-09-18 11:28:15 +12:00
wlr_cursor.c wlr_box: properly calculate closest point for non-positive area boxes 2019-10-11 23:43:13 +03:00
wlr_data_control_v1.c Fix memory leak 2019-08-12 09:37:21 +09:00
wlr_export_dmabuf_v1.c export-dmabuf-v1: fix segfault on output disable 2019-08-01 19:00:48 +03:00
wlr_foreign_toplevel_management_v1.c foreign-toplevel: support fullscreen state and request 2019-04-29 00:00:53 +03:00
wlr_fullscreen_shell_v1.c fullscreen-shell-v1: initial protocol implementation 2019-01-06 12:12:06 +01:00
wlr_gamma_control_v1.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_gtk_primary_selection.c Implement serial validation for selection requests 2019-06-30 15:01:05 -04:00
wlr_idle.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_idle_inhibit_v1.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_input_device.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_input_inhibitor.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_input_method_v2.c wlr_input_method_v2: Remove input method's resource from the list on destroy 2019-08-09 08:05:55 +09:00
wlr_keyboard.c Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_keyboard_group.c Introduce wlr_keyboard_group 2019-11-05 20:05:49 +01:00
wlr_layer_shell_v1.c layer_shell: set layer of existing surface 2019-10-16 09:41:13 -04:00
wlr_linux_dmabuf_v1.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_list.c Revert "ELF Visibility" 2018-02-19 18:01:27 -05:00
wlr_matrix.c Fix typos in comments and strings 2018-05-03 21:59:43 +01:00
wlr_output.c output: Add commit sequence number 2019-10-22 10:41:32 -04:00
wlr_output_damage.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_output_layout.c wlr_box: properly calculate closest point for non-positive area boxes 2019-10-11 23:43:13 +03:00
wlr_output_management_v1.c output-management-v1: add assertion as a safety net 2019-10-27 10:49:53 -04:00
wlr_pointer.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer_constraints_v1.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_pointer_gestures_v1.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_presentation_time.c presentation_feedback: add the sampled state 2019-09-19 19:44:19 +03:00
wlr_primary_selection.c wlr_seat: Fix edge cases with serial validation 2019-06-30 15:01:05 -04:00
wlr_primary_selection_v1.c Implement serial validation for selection requests 2019-06-30 15:01:05 -04:00
wlr_region.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_relative_pointer_v1.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_screencopy_v1.c screencopy: Implement damage reporting 2019-10-22 10:41:32 -04:00
wlr_server_decoration.c Init the new destroy signals added by #1200 2018-08-27 18:21:36 +02:00
wlr_surface.c wlr_surface: condition is always false 2019-08-12 09:37:21 +09:00
wlr_switch.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_tablet_pad.c Move initialization of wlr_tablet_pad into types/wlr_tablet_pad 2019-09-26 19:41:19 +03:00
wlr_tablet_tool.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_text_input_v3.c text-input-v3: remove newline in log message 2018-11-26 12:15:34 +01:00
wlr_touch.c Remove all wayland-server.h includes 2019-07-27 15:49:32 -04:00
wlr_virtual_keyboard_v1.c Fixes crash of compositor when unvalidated keycode 0 is passed (#1833) 2019-09-27 13:11:30 +03:00
wlr_xcursor_manager.c Redesign wlr_texture 2018-03-24 23:48:32 -04:00
wlr_xdg_decoration_v1.c Fix a crash on zxdg_decoration_manager_v1 destroy 2018-10-01 14:45:17 +02:00
wlr_xdg_output_v1.c xdg-output: send wl_output.done after xdg_output created 2019-09-17 15:30:20 +03:00