summaryrefslogtreecommitdiff
path: root/src/devices/IKeyboard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/IKeyboard.cpp')
-rw-r--r--src/devices/IKeyboard.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/devices/IKeyboard.cpp b/src/devices/IKeyboard.cpp
index e3517bf1..e05cbd04 100644
--- a/src/devices/IKeyboard.cpp
+++ b/src/devices/IKeyboard.cpp
@@ -274,9 +274,9 @@ std::string IKeyboard::getActiveLayout() {
return "none";
}
-void IKeyboard::updateLEDs() {
+std::optional<uint32_t> IKeyboard::getLEDs() {
if (xkbState == nullptr)
- return;
+ return {};
uint32_t leds = 0;
for (uint32_t i = 0; i < LED_COUNT; ++i) {
@@ -284,7 +284,16 @@ void IKeyboard::updateLEDs() {
leds |= (1 << i);
}
- updateLEDs(leds);
+ return leds;
+}
+
+void IKeyboard::updateLEDs() {
+ std::optional<uint32_t> leds = getLEDs();
+
+ if (!leds.has_value())
+ return;
+
+ updateLEDs(leds.value());
}
void IKeyboard::updateLEDs(uint32_t leds) {