Fix block caret during horizontal navigation

This commit is contained in:
fanlusky committed 2026-06-16 22:13:51 +08:00
1 parent 14ac2ff086
commit b67e17c2fa
2 files changed
+2

No files matched your search

+1
View File
@@ -83,6 +83,7 @@
- 单行 `TextBox` 现在支持基于光标位置的横向自动滚动:当文本向右溢出时,左右箭头、输入插入、删除和鼠标定位都会自动把当前 caret 滚动到可见区域
- 修复了单行 `TextBox` 启用横向滚动后 preedit 组合下划线未跟随文本一起偏移的问题,输入法预编辑样式现已恢复正常显示
- 继续修正了单行 `TextBox` 的横向滚动回收逻辑:当末尾删除文本导致内容变短时,会及时收回多余的右侧滚动量,避免随后输入法预编辑时视图突然跳到最右端
- 修复了 `TextBox` 用左右方向键移动时中间位置 caret 被绘制成整字符方块的问题:插入光标现在在整行范围内都会保持细竖线样式
## 构建
+1
View File
@@ -497,6 +497,7 @@ BOOL CTextLayout::RectFromCharPosDipsRaw(UINT nPos, D2D1_RECT_F *prc)
}
*prc = _prgLines[i].prgCharInfo[nPos - _prgLines[i].nPos].rc;
prc->right = prc->left;
return TRUE;
}