config.device.disable_triple_click (DeviceConfig field 10) exists in the protobuf but is never read by the firmware. Setting it has no effect.
Evidence (develop @ 784014e)
The only occurrences in the tree are the generated field itself:
src/mesh/generated/meshtastic/config.pb.h — :441 (struct member), :864 (_tag), :994 (field X-macro)
No hand-written source references it, and git log -S"disable_triple_click" turns up no consumer anywhere in history.
What runs regardless
src/input/InputBroker.cpp:437 — userConfigNoScreen.triplePress = INPUT_BROKER_GPS_TOGGLE, unconditional
src/input/ButtonThread.cpp:85 — attaches the multi-click callback whenever triplePress != INPUT_BROKER_NONE
src/input/ButtonThread.cpp:249-253 — dispatches _triplePress on a click count of 3
src/modules/SystemCommandsModule.cpp:90 — toggles GPS, clearing the saved position when GPS was enabled and fixed_position is false
Scoping note: the binding at InputBroker.cpp:437 sits in the else branch of the HAS_SCREEN / if (screen) split, so triple-press-to-toggle-GPS only applies to screenless boards to begin with.
Question
Is this intentional, or an oversight? Since #10338 per-click actions are configurable through ButtonConfig, where "no triple action" is expressed as triplePress = INPUT_BROKER_NONE — which would supersede the boolean. So either:
- (a) implement — guard line 437 with
!config.device.disable_triple_click (leaving it INPUT_BROKER_NONE also skips the attachMultiClick), or
- (b) deprecate — mark field 10
[deprecated = true] as was done for is_managed = 9, and remove it from the docs.
Either way the docs need updating: docs/configuration/radio/device.mdx currently documents it as functional, in both the "Disable Triple Click" section and the settings table.
config.device.disable_triple_click(DeviceConfig field 10) exists in the protobuf but is never read by the firmware. Setting it has no effect.Evidence (develop @ 784014e)
The only occurrences in the tree are the generated field itself:
src/mesh/generated/meshtastic/config.pb.h—:441(struct member),:864(_tag),:994(field X-macro)No hand-written source references it, and
git log -S"disable_triple_click"turns up no consumer anywhere in history.What runs regardless
src/input/InputBroker.cpp:437—userConfigNoScreen.triplePress = INPUT_BROKER_GPS_TOGGLE, unconditionalsrc/input/ButtonThread.cpp:85— attaches the multi-click callback whenevertriplePress != INPUT_BROKER_NONEsrc/input/ButtonThread.cpp:249-253— dispatches_triplePresson a click count of 3src/modules/SystemCommandsModule.cpp:90— toggles GPS, clearing the saved position when GPS was enabled andfixed_positionis falseScoping note: the binding at
InputBroker.cpp:437sits in theelsebranch of theHAS_SCREEN/if (screen)split, so triple-press-to-toggle-GPS only applies to screenless boards to begin with.Question
Is this intentional, or an oversight? Since #10338 per-click actions are configurable through
ButtonConfig, where "no triple action" is expressed astriplePress = INPUT_BROKER_NONE— which would supersede the boolean. So either:!config.device.disable_triple_click(leaving itINPUT_BROKER_NONEalso skips theattachMultiClick), or[deprecated = true]as was done foris_managed = 9, and remove it from the docs.Either way the docs need updating:
docs/configuration/radio/device.mdxcurrently documents it as functional, in both the "Disable Triple Click" section and the settings table.