feat(policy): 扩展命令并实现窗口迁移、 output/layout/binding_mode 切换功能

- command.h 新增 SEND_TO_WORKSPACE、SET_CURRENT_OUTPUT、SET_LAYOUT、SET_BINDING_MODE 四个命令类型及载荷
- policy.c 实现对应的 apply 逻辑,包含焦点转移、映射/取消映射副作用和 listener 通知
- plan.h 增加 quit/will_restart 标志,为后续优雅退出做准备
- binding.c 对重复设置同一 mode 增加短路返回
This commit is contained in:
2026-05-26 13:15:54 +08:00
parent 989a1ce6e8
commit ff3b51fd1d
4 changed files with 149 additions and 1 deletions

View File

@@ -225,7 +225,7 @@ bool binding_table_set_current_mode(
binding_table_t *table,
zdwm_binding_mode_id_t mode_id
) {
if (mode_id >= table->count) return false;
if (mode_id >= table->count || mode_id == table->current_mode) return false;
table->current_mode = mode_id;
return true;