Skip to content

feat(input): 单行文本框的圆点贴文字末尾,横向滚动后随之更新,RTL 贴在左侧(#666) - #719

Merged
Teeeeeeeerry merged 2 commits into
mainfrom
feat/666-single-line-dot-end
Oct 7, 2026
Merged

Teeeeeeeerry merged 2 commits into
mainfrom
feat/666-single-line-dot-end

Conversation

@Teeeeeeeerry

Copy link
Copy Markdown
Owner

问题

单行文本框与搜索框里的圆点还停在回落位置(框内侧右下角),和多行文本框(贴文字末尾)不一致。单行框文字一长就横向滚动,末尾的位置随滚动变化。

根因

镜像测量只接了多行文本框,单行框直接走回落位置。另外,镜像放在圆点自己的宿主里,宿主的 all: initial 把从 lang 继承来的语言区域也清掉了。sans-serif 这类通用字体族按语言区域解析成具体字体,于是镜像用另一款字体排版:短文本差一两像素看不出来,一句 60 个字符的英文差了 27px。

修复

验证

  • TC-E2E-138(#title,右内边距放大到 10px,让三种位置可区分):
    • 短文本:圆点在末尾右侧 4px。
    • 长文本横向滚动后:圆点在光标左侧 4px。
    • 按 Home 滚回开头:圆点钳在右边缘,仍然显示。
    • 按 End:回到光标旁。
    • RTL 希伯来文:圆点在文字左侧 4px。
    • 修复前第一步就失败。
  • 这一组端到端用例的字宽真值从画布改为文档里同一字体的 span。原因同上:画布不带页面的语言区域,量出来的字体不对。TC-134、135、136、137 的误差仍是 2px。
  • TC-E2E-122 原来断言回落位置(框右半边),改为“整颗在框里”,位置真值交给 TC-138。这是规格变化,不是放宽。
  • 单元测试新增一条:单行框量不出来时回落、不留镜像。
  • pnpm test:115 个文件、1424 条,全部通过。
  • pnpm typecheck 通过。
  • pnpm test:e2e:core:95 条通过,2 条跳过。

Closes #666

Teeeeeeeerry and others added 2 commits October 7, 2026 12:52
镜像测量扩到单行文本框:不换行,竖直按内容区中线算,减去横向滚动(RTL
下为负值)。横向滚动的重算沿用已有时机(打字中等停手,#670),末尾滚出
框外时沿用 #669 的钳制。圆点旁置规则按书写方向区分:RTL 下末尾在左侧,
圆点放到文字左边;单行框里末尾那一侧放不下时放到光标另一侧。

镜像补上框所在的 lang:圆点宿主的 all: initial 连语言区域一并清掉,通用
字体族会解析成另一款字体,长文本的末尾差出几十像素。同一组端到端用例的
字宽真值也从画布改为文档里同一字体的 span,原因相同。TC-E2E-122 的回落
位置断言改为“整颗在框里”,位置真值交给 TC-E2E-138。

Co-Authored-By: zhexuancai-uts <261878103+zhexuancai-uts@users.noreply.github.com>
Co-Authored-By: zhexuancai-uts <261878103+zhexuancai-uts@users.noreply.github.com>
@Teeeeeeeerry
Teeeeeeeerry merged commit 6724428 into main Oct 7, 2026
6 checks passed
@Teeeeeeeerry
Teeeeeeeerry deleted the feat/666-single-line-dot-end branch October 7, 2026 01:56
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.

输入翻译:单行文本框的圆点贴文字末尾,含横向滚动(#633)

1 participant