diff --git a/src/protocols/core/Seat.cpp b/src/protocols/core/Seat.cpp index f578292a..507a9c4a 100644 --- a/src/protocols/core/Seat.cpp +++ b/src/protocols/core/Seat.cpp @@ -2,6 +2,7 @@ #include "Compositor.hpp" #include "DataDevice.hpp" #include "../../devices/IKeyboard.hpp" +#include "../../devices/IHID.hpp" #include "../../managers/SeatManager.hpp" #include "../../config/ConfigValue.hpp" #include @@ -451,12 +452,20 @@ void CWLSeatProtocol::updateCapabilities(uint32_t caps) { } void CWLSeatProtocol::updateKeymap() { + if (!(currentCaps & eHIDCapabilityType::HID_INPUT_CAPABILITY_KEYBOARD)) { + return; + } + for (auto& k : m_vKeyboards) { k->sendKeymap(g_pSeatManager->keyboard.lock()); } } void CWLSeatProtocol::updateRepeatInfo(uint32_t rate, uint32_t delayMs) { + if (!(currentCaps & eHIDCapabilityType::HID_INPUT_CAPABILITY_KEYBOARD)) { + return; + } + for (auto& k : m_vKeyboards) { k->repeatInfo(rate, delayMs); }