input: Fix hyprctl switchxkblayout not actually changing layout (#7070)

Emits `SModifiersEvent` in `updateModifiers()`

Before the patch:

Changing layout with `hyprctl switchxkblayout ...` results in:
    * active keymap in `hyprctl devices` is changed
    * no event
    * no layout is actually changed UNTIL you press one of the mod keys
      (Alt | Shift | Super | Ctrl)

After:
    * active keymap in `hyprctl devices` changed
    * activelayout IPC event emitted
    * layout is changed

This fixes https://github.com/hyprwm/Hyprland/issues/7044
This commit is contained in:
MahouShoujoMivutilde 2024-07-27 18:43:45 +03:00 committed by GitHub
parent daed75219f
commit 84227eb587
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -325,6 +325,13 @@ void IKeyboard::updateModifiers(uint32_t depressed, uint32_t latched, uint32_t l
if (!updateModifiersState())
return;
keyboardEvents.modifiers.emit(SModifiersEvent{
.depressed = modifiersState.depressed,
.latched = modifiersState.latched,
.locked = modifiersState.locked,
.group = modifiersState.group,
});
updateLEDs();
}