diff --git a/src/activities/util/KeyboardEntryActivity.cpp b/src/activities/util/KeyboardEntryActivity.cpp index 3a6befac..24400947 100644 --- a/src/activities/util/KeyboardEntryActivity.cpp +++ b/src/activities/util/KeyboardEntryActivity.cpp @@ -13,6 +13,10 @@ const char* const KeyboardEntryActivity::keyboard[NUM_ROWS] = { const char* const KeyboardEntryActivity::keyboardShift[NUM_ROWS] = {"~!@#$%^&*()_+", "QWERTYUIOP{}|", "ASDFGHJKL:\"", "ZXCVBNM<>?", "SPECIAL ROW"}; +namespace { +constexpr unsigned long capsMs = 1000; +} + void KeyboardEntryActivity::taskTrampoline(void* param) { auto* self = static_cast(param); self->displayTaskLoop(); @@ -94,6 +98,7 @@ void KeyboardEntryActivity::handleKeyPress() { if (selectedCol >= SHIFT_COL && selectedCol < SPACE_COL) { // Shift toggle shiftActive = !shiftActive; + updateRequired = true; return; } @@ -234,7 +239,11 @@ void KeyboardEntryActivity::loop() { // Selection if (mappedInput.wasPressed(MappedInputManager::Button::Confirm)) { - handleKeyPress(); + if (mappedInput.getHeldTime() >= capsMs) { + shiftActive = !shiftActive; + } else { + handleKeyPress(); + } updateRequired = true; }