summaryrefslogtreecommitdiff
path: root/src/protocols/core/Seat.cpp
diff options
context:
space:
mode:
authorはれなよ <123649644+harenayo@users.noreply.github.com>2024-06-30 03:05:07 +0900
committerGitHub <noreply@github.com>2024-06-29 20:05:07 +0200
commit718afe271ecebfe6711453b9cfee90fa49a7e761 (patch)
tree2bff24f95c298186178965431890a895212fab85 /src/protocols/core/Seat.cpp
parent1f43a5c859bfdf3dc6e880610e21cd9434a4e47b (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.cpp7
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);
}