From dc5486d7d87ca0554a9090e6be1b965c5db0b387 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=90=B4=E6=96=87=E5=B3=B0?= Date: Mon, 30 Mar 2026 17:05:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BB=E9=A1=B5=E6=8C=89*=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E8=87=AA=E7=94=B1=E6=96=87=E6=9C=AC=E8=BE=93=E5=85=A5?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 INACTIVE 状态下 UP/DOWN 按键触发快捷回复列表的逻辑 - 按 * 键直接进入 FREETEXT 模式 --- CHANGELOG.md | 5 +++++ .../src/modules/CannedMessageModule.cpp | 7 +------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e661b4a..38a573c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -133,6 +133,11 @@ - **从 CLIENT_HIDDEN 切回 CLIENT 后 NodeInfo 永不广播**:`installRoleDefaults(CLIENT_HIDDEN)` 设置 `node_info_broadcast_secs = INT32_MAX`,但切回 CLIENT 时无对应恢复分支 - 修复:在 `NodeDB::installRoleDefaults()` 新增 CLIENT/CLIENT_MUTE 分支,恢复 `default_node_info_broadcast_secs` 和相关广播间隔 +#### 人机交互修改 +- **主页按 * 进入自由文本输入模式**:移除 INACTIVE 状态下 UP/DOWN 按键触发快捷回复列表的逻辑 + - 删除 `CannedMessageModule::handleInputEvent()` 中对 `INPUT_BROKER_UP` / `INPUT_BROKER_DOWN` 的特殊处理 + - 按 * 键(或其他可打印字符)直接进入 FREETEXT 模式 + --- ## TODO(未来计划) diff --git a/code/firmware-2.7.15.567b8ea/src/modules/CannedMessageModule.cpp b/code/firmware-2.7.15.567b8ea/src/modules/CannedMessageModule.cpp index 90f9bfe..57de26b 100644 --- a/code/firmware-2.7.15.567b8ea/src/modules/CannedMessageModule.cpp +++ b/code/firmware-2.7.15.567b8ea/src/modules/CannedMessageModule.cpp @@ -412,12 +412,7 @@ int CannedMessageModule::handleInputEvent(const InputEvent *event) if (event->inputEvent == INPUT_BROKER_LEFT || event->inputEvent == INPUT_BROKER_RIGHT) { break; } - // Handle UP/DOWN: activate canned message list - if (event->inputEvent == INPUT_BROKER_UP || event->inputEvent == INPUT_BROKER_DOWN || - event->inputEvent == INPUT_BROKER_ALT_LONG) { - LaunchWithDestination(NODENUM_BROADCAST); - return 1; - } + // 按 * 键进入自由文本输入模式(FREETEXT) // Printable char (ASCII) opens free text compose if (event->kbchar >= 32 && event->kbchar <= 126) { runState = CANNED_MESSAGE_RUN_STATE_FREETEXT;