mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-11-01 22:58:38 -04:00
wlr_keyboard manages the xkb-common state of the compositor. It used to update the state, update the modifiers, then notify the compositor. When [Shift_L] was pressed and released, this resulted in an event chain: Modifiers: Shift Key: Shift_L (Pressed) Modifiers: Key: Shift_L (Release) The xkb-docs state that the state should be updated *after* the key was handled [1], to prevent the new state from influencing the actual key generated. To achieve this, the event to the compositor is emitted, *before* wlroots handles the xkb and internal keyboard state. With this patch applied, the emitted events ill be: Modifiers: Key: Shift_L (Pressed) Modifiers: Shift Key: Shift_L (Release) [1] https://xkbcommon.org/doc/current/group__state.html#gac554aa20743a621692c1a744a05e06ce |
||
|---|---|---|
| .. | ||
| meson.build | ||
| wlr_box.c | ||
| wlr_compositor.c | ||
| wlr_cursor.c | ||
| wlr_data_device.c | ||
| wlr_gamma_control.c | ||
| wlr_idle.c | ||
| wlr_idle_inhibit_v1.c | ||
| wlr_input_device.c | ||
| wlr_input_inhibitor.c | ||
| wlr_keyboard.c | ||
| wlr_layer_shell.c | ||
| wlr_linux_dmabuf.c | ||
| wlr_list.c | ||
| wlr_matrix.c | ||
| wlr_output.c | ||
| wlr_output_damage.c | ||
| wlr_output_layout.c | ||
| wlr_pointer.c | ||
| wlr_primary_selection.c | ||
| wlr_region.c | ||
| wlr_screenshooter.c | ||
| wlr_seat.c | ||
| wlr_server_decoration.c | ||
| wlr_surface.c | ||
| wlr_tablet_pad.c | ||
| wlr_tablet_tool.c | ||
| wlr_touch.c | ||
| wlr_wl_shell.c | ||
| wlr_xcursor_manager.c | ||
| wlr_xdg_output.c | ||
| wlr_xdg_shell.c | ||
| wlr_xdg_shell_v6.c | ||