Skip to content

[tauri] 跨平台UI缺陷频发,windows需分层治理做原生实现 #158

@Cooper-X-Oak

Description

@Cooper-X-Oak

现象

仓库里现在已经出现多张彼此不重复、但共享同一类跨平台设计缺口的 issue:

这些问题表面上落在:

  • hotkey
  • helper-window
  • 拖动
  • 圆角
  • 截图
  • focus
  • topmost
  • dead zone

但根上都指向同一个治理缺口:

我们缺少一份跨平台 helper-window / native-window contract,
导致 macOS 上自然成立的实现方式,被直接平移到 Windows / Linux 后只兼容了一部分语义。

这次 QA 这条线已经把这个问题暴露得很典型了:

  • macOS 的原始产品目标其实没错
  • 错的是把 macOS 当前这版实现方式直接当成跨平台模板
  • 一旦先做分层,问题会收得很快
  • 一旦不分层,就会在单个 bug 票里反向推设计,越修越累

影响

如果不把这类问题提升到设计治理层,后续会持续发生:

  • 先在 Windows 暴露半兼容症状
  • 再在单点修复里一边猜平台差异、一边补 workaround
  • 最后 feature family 的产品语义和平台实现边界都越来越模糊

对当前仓库的直接影响包括:

  • helper-window 的 show / dismiss / hidden / non-participating 契约不一致
  • 可拖动语义无法跨平台稳定承载
  • 窗口外观问题和交互问题容易被混在一起
  • 测试和回归也不容易知道自己在验证“产品目标”还是“某个平台的小补丁”

从工程经验角度看,这已经不是“顺手记个心得”的程度了,而是值得单独沉淀的一条治理规则。

建议接受标准

TODO / 不确定项

  • 这份治理说明后续是否要正式落进 docs/ 作为长期设计约束
  • Linux 是否应正式定义为 best-effort,还是也要求达到同等产品目标
  • 后续可以继续把更多现存 issue 挂到这张治理 issue 下,作为同族群案例库

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions