Files
msime-windows/windows/tests/caret_anchor_policy.cpp
fanlusky 597d087580 fix(server): 光标状态提示仅由用户快捷键触发并收紧协议边界
- DLL 只在 Shift/Ctrl 切换、Shift+Space、Ctrl+.、Caps Lock 与
  Ctrl+Shift+F 处显式请求提示;Server 下发的模式同步、宿主转换模式
  同步和激活初始化不再弹出提示,移除 compartment 回调里的推断逻辑
- 恢复文档切换时候选窗的 OnKillThreadFocus,改用 COM 身份比较
- 能力位改名为 CaretStateIndicator,DLL 仅在 Server 确认后发送切换
  事件;Server 端这些事件只驱动提示,不再改写工具栏或状态快照
- 标点提示的中英模式由 DLL 随 PuncSwitch 携带
- UILess 宿主不显示提示,会话转为 UILess 时隐藏已显示的提示
- Ctrl+Shift+F 的锚点就地读取,不再覆盖 Global::Point,且只采信
  协商了该能力的客户端
- 撤回对所有包默认 point 的修改;提示窗口创建失败不再阻断 Server
  启动;提示内容改为结构化 CaretStateBadge
- Caps Lock 在同一按键重复进入 TestKeyDown 时只处理一次
2026-09-26 13:58:22 +08:00

20 lines
529 B
C++

#include "Key/CaretAnchorPolicy.h"
int main()
{
// Do not use assert: Release builds must execute these checks too.
if (KeyEventPayloadWriteMask(false) != 0b000111u)
return 1;
if (KeyEventPayloadWriteMask(true) != 0b001111u)
return 2;
if (!IsUsableCaretExtent(10, 20, 10, 40))
return 3;
if (IsUsableCaretExtent(10, 20, 10, 20))
return 4;
if (IsUsableCaretExtent(0, 0, 0, 0))
return 5;
if (IsUsableCaretExtent(12, 20, 10, 40))
return 6;
return 0;
}