生态桌面应用
事件系统
理解事件批次、命中测试、捕获、目标、冒泡与指针捕获。
言台先把系统事件规范化并批量送入言界。窗口级叠层栈先从最上层处理菜单/弹层命中、外部 点击与模态阻断;普通事件再在控件树依次执行三个阶段:
根 → 父容器 → 目标控件 捕获阶段
目标控件 目标阶段
目标控件 → 父容器 → 根 冒泡阶段使用捕获在事件到达目标前观察,使用监听处理目标和冒泡:
法 记录捕获(所事件) 则
# 在容器捕获阶段执行
终
法 处理点击(所事件) 则
# 目标按钮或冒泡阶段执行
终
容器.捕获(「指针按下」,记录捕获);
按钮.监听(「点击」,处理点击);按钮的点击(回调)是常用语义事件快捷入口。输入框的变化时在正文提交变化后触发。窗口的关闭时和快捷分别处理关闭请求与标准化快捷键。
拖动分隔条或选区时,目标控件会请求指针捕获;即使指针离开原矩形,移动和释放仍发送给该控件。释放、取消、失焦或控件关闭都会清除捕获,避免“卡住按下”状态。
言台发出的无障碍焦点请求与无障碍动作请求不直接修改控件。窗口先同步当前语义变化,
再核对树修订、稳定控件编号、可见/启用状态和动作参数;有效请求才进入控件已有的点击、
设置值、选择、滚动或展开路径。过期或畸形请求不会降级成普通事件。
事件批次保留顺序,但会合并连续指针移动、窗口尺寸和重绘请求,并累积滚轮增量。未知可选
事件由兼容层忽略;未知主协议或损坏批次会返回统一错误。帧呈现是离散反馈,携带帧序号
和单调呈现时间,用来推进有界动画而不是表达业务计时。