mirror of
https://github.com/meshtastic/firmware.git
synced 2026-11-07 23:04:49 -05:00
fix(screen): route remote input to MUI directly, not through the InputBroker
MUI builds never construct an InputBroker — Modules.cpp skips it (along with SystemCommands and buzzer feedback) whenever displaymode is COLOR — so AdminMessage.send_input_event hit AdminModule's null-broker guard and died: remote control was silently inert on every MUI device. AdminModule now offers the event to graphics::muiInjectInputEvent first, which maps it onto device-ui's virtual LVGL devices and reports whether it consumed it, falling through to the broker on BaseUI builds. Verified on a T-Deck with a headless mirror client: injecting USER_PRESS at (35,105) navigates MUI to Group Channels.
This commit is contained in:
1 parent
b12e933782
commit
7653316083
3 files changed
+64
-58
No files matched your search
@@ -2185,6 +2185,14 @@ void AdminModule::handleSendInputEvent(const meshtastic_AdminMessage_InputEvent
|
||||
|
||||
// Wake the device if asleep
|
||||
powerFSM.trigger(EVENT_INPUT);
|
||||
|
||||
#if HAS_SCREEN_MIRROR && defined(MESHTASTIC_MUI_MIRROR)
|
||||
// MUI builds never construct an InputBroker (Modules.cpp skips it when
|
||||
// displaymode is COLOR), so remote input reaches the LVGL UI directly.
|
||||
if (graphics::muiInjectInputEvent(inputEvent.event_code, inputEvent.kb_char, inputEvent.touch_x, inputEvent.touch_y))
|
||||
return;
|
||||
#endif
|
||||
|
||||
#if !defined(MESHTASTIC_EXCLUDE_INPUTBROKER)
|
||||
// Inject the event through InputBroker
|
||||
if (inputBroker) {
|
||||
|
||||
Reference in new issue
Block a user