Merge branch 'ledcontrol/shift-invert-next-prev-led-key' of https://github.com/alfalfasprossen/Kaleidoscope into alfalfasprossen-ledcontrol/shift-invert-next-prev-led-key

pull/848/head^2
Jesse Vincent 5 years ago
commit 96d64d94d5
No known key found for this signature in database
GPG Key ID: CC228463465E40BC

@ -32,6 +32,7 @@ LEDMode *LEDControl::cur_led_mode_;
uint8_t LEDControl::syncDelay = 32;
uint16_t LEDControl::syncTimer = 0;
bool LEDControl::enabled_ = true;
Key LEDControl::pending_next_prev_key_ = Key_NoKey;
LEDControl::LEDControl(void) {
}
@ -155,10 +156,10 @@ kaleidoscope::EventHandlerResult LEDControl::onKeyswitchEvent(Key &mappedKey, Ke
return kaleidoscope::EventHandlerResult::OK;
if (keyToggledOn(keyState)) {
if (mappedKey == Key_LEDEffectNext) {
next_mode();
} else if (mappedKey == Key_LEDEffectPrevious) {
prev_mode();
if (mappedKey == Key_LEDEffectNext || mappedKey == Key_LEDEffectPrevious) {
// Handling of these keys is delayed into `beforeReportingState`
// so that we can incorporate the shift modifier state.
pending_next_prev_key_ = mappedKey;
} else if (mappedKey == Key_LEDToggle) {
if (enabled_)
disable();
@ -174,6 +175,20 @@ kaleidoscope::EventHandlerResult LEDControl::beforeReportingState(void) {
if (!enabled_)
return kaleidoscope::EventHandlerResult::OK;
if (pending_next_prev_key_ != Key_NoKey) {
bool is_shifted =
kaleidoscope::Runtime.hid().keyboard().isModifierKeyActive(Key_LeftShift) ||
kaleidoscope::Runtime.hid().keyboard().isModifierKeyActive(Key_RightShift);
if ((pending_next_prev_key_ == Key_LEDEffectNext && !is_shifted) ||
(pending_next_prev_key_ == Key_LEDEffectPrevious && is_shifted)) {
next_mode();
} else {
prev_mode();
}
pending_next_prev_key_ = Key_NoKey;
}
if (Runtime.hasTimeExpired(syncTimer, syncDelay)) {
syncLeds();
syncTimer += syncDelay;

@ -161,6 +161,7 @@ class LEDControl : public kaleidoscope::Plugin {
static uint8_t num_led_modes_;
static LEDMode *cur_led_mode_;
static bool enabled_;
static Key pending_next_prev_key_;
};
class FocusLEDCommand : public Plugin {

Loading…
Cancel
Save