Skip to content

fix(reader): 全局禁用原生右键菜单,并优化阅读区选中文本的 AI 触发交互#399

Open
rmtd418 wants to merge 3 commits into
codedogQBY:mainfrom
rmtd418:feat/global-contextmenu-clean
Open

fix(reader): 全局禁用原生右键菜单,并优化阅读区选中文本的 AI 触发交互#399
rmtd418 wants to merge 3 commits into
codedogQBY:mainfrom
rmtd418:feat/global-contextmenu-clean

Conversation

@rmtd418

@rmtd418 rmtd418 commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

改动说明

这个 PR 主要处理阅读器里的两个交互问题:

  1. 全局禁用原生系统右键菜单
  2. 优化阅读区选中文本后的 AI 触发方式

背景

当前桌面端在阅读区域内右键时,会弹出系统原生右键菜单。
这个菜单对当前阅读场景没有实际帮助,反而会干扰已有的阅读器交互,看起来也比较突兀。

另外,选中文本后的 AI 触发原本更依赖弹出的操作菜单,交互链路偏长。这个 PR 顺手把相关触发逻辑做了收敛。

具体改动

1. 全局禁用原生右键菜单

在桌面端应用层统一拦截 contextmenu 事件,避免继续弹出系统原生右键菜单。

效果:

  • 右键不再弹出系统菜单
  • 阅读器内部交互更统一
  • 避免原生菜单打断阅读和选区操作

2. 优化选中文本后的 AI 触发交互

阅读区选中文本后,将选区的多个 rect 合并为一个整体矩形边界。

交互调整为:

  • 双击落在选中文本对应的矩形范围内:触发 Ask AI
  • 双击落在选区范围外:关闭当前选区浮层
  • 单击空白区域:延时关闭,避免和双击操作互相抢事件

这样做的目的:

  • 让“选中后直接送 AI”更顺手
  • 判定范围更稳定,不再过度依赖小按钮点击
  • 减少误关闭、误触发的问题

影响范围

改动文件:

  • packages/app/src/components/layout/AppLayout.tsx
  • packages/app/src/components/reader/ReaderView.tsx
  • packages/app/src/components/reader/SelectionPopover.tsx

测试说明

我这边只在 Windows 桌面端 做了实际测试。
未对 macOS / Linux / 移动端做验证。

本次验证基于本地同步时的上游 main

  • 上游基线提交:8546d63
  • 对应应用版本:1.3.3

已验证场景:

  • 阅读页面右键不再弹出系统原生菜单
  • 选中文本后,双击选区范围内可以触发 AI
  • 双击选区范围外会关闭选区浮层
  • 普通阅读流程未发现明显回归

说明

这个 PR 只处理交互层问题,不涉及协议、模型或后端逻辑调整。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant