生态桌面应用
事件系统
理解事件批次、命中测试、捕获、目标、冒泡与指针捕获。
言台先把系统事件规范化并批量送入言界。言界在窗口控件树上命中测试,然后依次执行三个阶段:
根 → 父容器 → 目标控件 捕获阶段
目标控件 目标阶段
目标控件 → 父容器 → 根 冒泡阶段使用捕获在事件到达目标前观察,使用监听处理目标和冒泡:
法 记录捕获(所事件) 则
# 在容器捕获阶段执行
终
法 处理点击(所事件) 则
# 目标按钮或冒泡阶段执行
终
容器.捕获(「指针按下」,记录捕获);
按钮.监听(「点击」,处理点击);按钮的点击(回调)是常用语义事件快捷入口。输入框的变化时在正文提交变化后触发。窗口的关闭时和快捷分别处理关闭请求与标准化快捷键。
拖动分隔条或选区时,目标控件会请求指针捕获;即使指针离开原矩形,移动和释放仍发送给该控件。释放、取消、失焦或控件关闭都会清除捕获,避免“卡住按下”状态。
事件批次保留顺序,但会合并连续指针移动、窗口尺寸和重绘请求,并累积滚轮增量。未知可选事件由兼容层忽略;未知主协议或损坏批次会返回统一错误。