- 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 时只处理一次
20 lines
529 B
C++
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;
|
|
}
|