Skip to content

fix(editor): 避免惯性滚动误触发字号缩放 - #7199

Merged
t8y2 merged 1 commit into
mainfrom
codex/issue-4430-wheel-gesture-zoom
Aug 26, 2026
Merged

fix(editor): 避免惯性滚动误触发字号缩放#7199
t8y2 merged 1 commit into
mainfrom
codex/issue-4430-wheel-gesture-zoom

Conversation

@zipg

@zipg zipg commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

问题

macOS 触控板滚动存在惯性事件。用户先普通滚动 SQL 编辑器,再在惯性尚未结束时按下 Cmd(例如准备 Cmd+Tab),后续惯性 wheel 事件会带上 metaKey。现有实现逐事件检查修饰键,因此会把同一普通滚动手势的尾部误判成 Cmd+滚轮缩放,意外改变编辑器字号。

修复

  • 增加共享的滚轮缩放手势保护器,以 180ms 空闲间隔划分滚动手势
  • 只有手势第一个事件已经按住 Cmd/Ctrl 时才允许缩放
  • 查询编辑器、单元格详情编辑器和 Nacos 配置编辑器统一使用该判断
  • 增加手势起点、空闲后新手势、时间戳重置和三个编辑器接线的回归测试

实际验证

在 MySQL 8.4 查询编辑器中通过浏览器底层滚轮事件复现和回归:

  • 修复前:普通滚动后 40ms 按下 Cmd,字号 13px -> 13.8px
  • 修复后:相同事件序列保持 13px -> 13px
  • 停顿后主动 Cmd+滚轮仍可正常 13px -> 13.8px,反向滚动恢复 13px

检查

  • pnpm exec vitest run apps/desktop/src/lib/__tests__/editor/editorZoom.spec.ts apps/desktop/src/components/nacos/__tests__/NacosAdminConsoleLayout.spec.ts:34 项通过
  • pnpm typecheck:通过
  • pnpm lint:通过(仅仓库既有 warning)
  • pnpm exec oxfmt --check ...:通过
  • node scripts/sync-connection-types.mjs --check:通过
  • 本地 pnpm check 的全量 Vitest 子进程在无 CPU 活动时未自行退出,因此未将全量检查标记为通过;上述定向测试均正常退出

Fixes #4430

@github-actions github-actions Bot added area/desktop Desktop application or Tauri shell bug Something isn't working ui-change Changes user-visible interface, text, or visual assets labels Aug 25, 2026
@t8y2
t8y2 merged commit a6c386a into main Aug 26, 2026
16 checks passed
@t8y2

t8y2 commented Aug 26, 2026

Copy link
Copy Markdown
Owner

Thanks for the contribution! Merged in a6c386a, will be released in the next version.

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

Labels

area/desktop Desktop application or Tauri shell bug Something isn't working ui-change Changes user-visible interface, text, or visual assets

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] sql编辑器,上下滑动后再按住ctrl会有问题

2 participants