feat: 补发 ConfigureNotify 通知客户端实际几何
当 WM 拒绝窗口的 ConfigureRequest(因窗口需要重新布局)或映射 窗口时,按 ICCCM 规范主动向客户端发送 synthetic ConfigureNotify, 告知其当前真实几何,避免客户端状态不一致。 - core: 新增 NOTIFY_CONFIGURE 命令与 CONFIGURE_NOTIFY 效果, 由 policy 在 window_need_layout 分支生成,plan 层下发 - backend(x11): 新增 configure 批次,map/notify 时查询实际几何 并合成 ConfigureNotify 事件下发
This commit is contained in:
@@ -121,6 +121,16 @@ void plan_push_resize_effect(plan_t *plan, window_id_t window_id) {
|
||||
plan_push_effect(plan, &effect);
|
||||
}
|
||||
|
||||
void plan_push_configure_notify_effect(plan_t *plan, window_id_t window_id) {
|
||||
if (window_id_invalid(window_id)) return;
|
||||
|
||||
effect_t effect = {
|
||||
.type = ZDWM_EFFECT_CONFIGURE_NOTIFY,
|
||||
.as.configure_notify.window = window_id,
|
||||
};
|
||||
plan_push_effect(plan, &effect);
|
||||
}
|
||||
|
||||
void plan_push_fullscreen_effect(
|
||||
plan_t *plan,
|
||||
window_id_t window_id,
|
||||
|
||||
Reference in New Issue
Block a user