Skip to content

Conversation

@brad112358
Copy link
Contributor

Rotary encoder INPUT_BROKER_SELECT_LONG events were not being generated on long press of the encoder select switch. Thus, upper case characters could not be entered in "Free Text" messages via the encoder.

The root cause was RotaryEncoderInterruptBase::runOnce() only being called once after RotaryEncoderInterruptBase::intPressHandler() because it always returned INT32_MAX.

The easy fix is to return 20 if the press is still detected and LONG_PRESS_DURATION has not passed.

🤝 Attestations

  • [ X] I have tested that my proposed changes behave as described.
  • [ X] I have tested that my proposed changes do not cause any obvious regressions on the following devices:
    • Heltec (Lora32) V3
    • LilyGo T-Deck
    • LilyGo T-Beam
    • RAK WisBlock 4631
    • Seeed Studio T-1000E tracker card
    • Other (please specify below)
      Tested on DIY NRF52 Promicro E22 board

@brad112358 brad112358 changed the base branch from develop to master December 22, 2025 00:25
@jp-bennett
Copy link
Collaborator

Sorry, missed seeing this one when it first came through. Looks reasonable

@jp-bennett jp-bennett added the bugfix Pull request that fixes bugs label Jan 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bugfix Pull request that fixes bugs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants