diff --git a/boards/esp32-s3-lcd-43/board-config.sh b/boards/esp32-s3-lcd-43/board-config.sh index 865a1c7..10fe6fc 100644 --- a/boards/esp32-s3-lcd-43/board-config.sh +++ b/boards/esp32-s3-lcd-43/board-config.sh @@ -1,4 +1,4 @@ FQBN="esp32:esp32:waveshare_esp32_s3_touch_lcd_43:PSRAM=enabled,FlashSize=16M,USBMode=hwcdc,PartitionScheme=app3M_fat9M_16MB" PORT="/dev/ttyACM0" -LIBS="--libraries ~/Arduino/libraries/LovyanGFX" +LIBS="--libraries ./vendor/esp32-s3-lcd-43/LovyanGFX" OPTS="-DDEBUG_MODE -DBOARD_HAS_PSRAM -DLGFX_USE_V1 -DLOCAL_SECRETS" diff --git a/libraries/KlubhausCore/src/DoorbellLogic.cpp b/libraries/KlubhausCore/src/DoorbellLogic.cpp index f46d7da..74fdd46 100644 --- a/libraries/KlubhausCore/src/DoorbellLogic.cpp +++ b/libraries/KlubhausCore/src/DoorbellLogic.cpp @@ -319,6 +319,14 @@ void DoorbellLogic::setScreen(ScreenID s) { } int DoorbellLogic::handleTouch(const TouchEvent& evt) { + // Check hold completion FIRST - before any release handling + // This ensures hold-to-silence works on ALERT screen + if(evt.released && _state.deviceState == DeviceState::ALERTING) { + if(updateHold(evt)) { + return (int)TileAction::SILENCE; + } + } + // Handle press - show visual feedback if(evt.pressed) { // Reset inactivity timer on any touch