@ -62,6 +62,7 @@ struct wlr_keyboard {
xkb_led_index_t led_indexes[WLR_LED_COUNT];
xkb_mod_index_t mod_indexes[WLR_MODIFIER_COUNT];
uint32_t leds;
uint32_t keycodes[WLR_KEYBOARD_KEYS_CAP];
size_t num_keycodes;
struct wlr_keyboard_modifiers modifiers;
@ -163,6 +163,12 @@ void wlr_keyboard_finish(struct wlr_keyboard *kb) {
}
void wlr_keyboard_led_update(struct wlr_keyboard *kb, uint32_t leds) {
if (kb->leds == leds) {
return;
kb->leds = leds;
if (kb->impl && kb->impl->led_update) {
kb->impl->led_update(kb, leds);