diff options
| author | はれなよ <123649644+harenayo@users.noreply.github.com> | 2024-06-30 03:05:07 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-06-29 20:05:07 +0200 |
| commit | 718afe271ecebfe6711453b9cfee90fa49a7e761 (patch) | |
| tree | 2bff24f95c298186178965431890a895212fab85 /src/protocols/core/Seat.cpp | |
| parent | 1f43a5c859bfdf3dc6e880610e21cd9434a4e47b (diff) | |
seat: don't send keyboard data without a keyboard cap (#6697)
* Fix #6279: prevent sending keymap or repeat info events by keyboards without keyboard capability
* Remove brackets
Diffstat (limited to 'src/protocols/core/Seat.cpp')
| -rw-r--r-- | src/protocols/core/Seat.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/protocols/core/Seat.cpp b/src/protocols/core/Seat.cpp index f578292a..464a901c 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 <algorithm> @@ -451,12 +452,18 @@ 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); } |
