你好,感谢维护这个很棒的项目!
我注意到当前 TUI 已经启用了鼠标捕获并支持鼠标滚轮用于上下滚动(ScrollUp / ScrollDown),但似乎没有处理鼠标点击/按下等事件,因此无法通过鼠标点击来选中或激活页面元素。
我查看了相关代码:
- terminal 初始化启用了鼠标捕获(EnterAlternateScreen + EnableMouseCapture):src-tauri/src/cli/tui/terminal.rs
- 事件处理里仅对滚轮事件做了处理,将 MouseEventKind::ScrollUp / ScrollDown 映射为 KeyCode::Up/Down:src-tauri/src/cli/tui/mod.rs
- 仓库中已有针对滚动事件的测试作为参考:src-tauri/src/cli/tui/tests.rs
期望行为:
- 在 TUI 中支持鼠标点击(MouseEventKind::Down/Up/Click 或相应事件),用于:
- 列表项点击以聚焦或激活
- 按钮点击以触发动作
- 可选:双击或右键自定义行为
实现建议:
- 在事件分支(event::Event::Mouse(mouse))中增加对其它 MouseEventKind 的处理(例如 Down/Up/Click/Drag),并将这些事件映射到应用内相应行为。
- 可以为 App 增加 on_mouse 或 on_mouse_click 接口,接收鼠标位置(column,row)、按钮和修饰键,或者将点击映射为特定 KeyEvent(如 Enter/Space)以复用按键处理逻辑。
- 需要在 UI 布局层实现命中检测(hit testing),判断点击落在哪个组件(列表、按钮等)上。
- 请参考现有的滚动处理测试,新增鼠标点击的单元测试,以保证行为稳定。
如果需要的话,我可以协助提供 PR 草案或示例补丁。非常感谢!
你好,感谢维护这个很棒的项目!
我注意到当前 TUI 已经启用了鼠标捕获并支持鼠标滚轮用于上下滚动(ScrollUp / ScrollDown),但似乎没有处理鼠标点击/按下等事件,因此无法通过鼠标点击来选中或激活页面元素。
我查看了相关代码:
期望行为:
实现建议:
如果需要的话,我可以协助提供 PR 草案或示例补丁。非常感谢!