生态桌面应用

事件系统

理解事件批次、命中测试、捕获、目标、冒泡与指针捕获。

言台先把系统事件规范化并批量送入言界。言界在窗口控件树上命中测试,然后依次执行三个阶段:

根 → 父容器 → 目标控件     捕获阶段
             目标控件      目标阶段
目标控件 → 父容器 → 根     冒泡阶段

使用捕获在事件到达目标前观察,使用监听处理目标和冒泡:

 记录捕获(所事件) 
    # 在容器捕获阶段执行


 处理点击(所事件) 
    # 目标按钮或冒泡阶段执行


容器.捕获「指针按下」,记录捕获);
按钮.监听「点击」,处理点击);

按钮的点击(回调)是常用语义事件快捷入口。输入框的变化时在正文提交变化后触发。窗口的关闭时快捷分别处理关闭请求与标准化快捷键。

拖动分隔条或选区时,目标控件会请求指针捕获;即使指针离开原矩形,移动和释放仍发送给该控件。释放、取消、失焦或控件关闭都会清除捕获,避免“卡住按下”状态。

事件批次保留顺序,但会合并连续指针移动、窗口尺寸和重绘请求,并累积滚轮增量。未知可选事件由兼容层忽略;未知主协议或损坏批次会返回统一错误。