Merge pull request #438 from johanmalm/fix/repeat

Revert "keyboard: cancel repeat when handling key-bind" and
only pass on pressed+sent keycodes to surfaces on keyboard-focus.
This commit is contained in:
Johan Malm 2022-09-21 21:35:06 +01:00 committed by GitHub
commit 76d8982d3e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 118 additions and 34 deletions

View file

@ -2,11 +2,24 @@
#ifndef __LABWC_KEY_STATE_H
#define __LABWC_KEY_STATE_H
/*
* All keycodes in these functions are (Linux) libinput evdev scancodes which is
* what 'wlr_keyboard' uses (e.g. 'seat->keyboard_group->keyboard->keycodes').
* Note: These keycodes are different to XKB scancodes by a value of 8.
*/
/**
* key_state_pressed_sent_keycodes - generate array of pressed+sent keys
* Note: The array is generated by subtracting any bound keys from _all_ pressed
* keys (because bound keys were not forwarded to clients).
*/
uint32_t *key_state_pressed_sent_keycodes(void);
int key_state_nr_pressed_sent_keycodes(void);
void key_state_set_pressed(uint32_t keycode, bool ispressed);
void key_state_store_pressed_keys_as_bound(void);
bool key_state_corresponding_press_event_was_bound(uint32_t keycode);
/* returns numbers of keys still pressed in a consumed key combination */
int key_state_bound_key_remove(uint32_t keycode);
void key_state_bound_key_remove(uint32_t keycode);
int key_state_nr_keys(void);
#endif /* __LABWC_KEY_STATE_H */