|
|
d07d2f64e1
|
refactor(policy): 提取切换 workspace 和窗口聚焦的命令构造辅助函数
|
2026-06-04 22:28:39 +08:00 |
|
|
|
0d43c79ad6
|
feat(config): 默认配置补充按键绑定
|
2026-05-31 18:54:23 +08:00 |
|
|
|
83ed661ba6
|
fix(policy): 移动窗口所在 workspace 前先检查目标 workspace 是否存在
|
2026-05-31 18:42:51 +08:00 |
|
|
|
59520777c3
|
refactor(binding): key_binding_t 不再保存按键序列字符串指针
|
2026-05-31 18:33:11 +08:00 |
|
|
|
09d5e4b4d0
|
refactor(policy): 删除 action 模块,将 action -> command 解析放在 policy 模块内部
- 删除 src/core/action.c|h,将 spawn 移至 src/base/process
- policy_resolve_action 实现完整的 action 分发逻辑
- binding_table_cycle_mode 改为纯计算,返回模式 ID 而非修改状态
- 从 state 移除 state_workspace_cycle_layout / state_cycle_current_output
- 新增 ZDWM_COMMAND_QUIT 命令,通过 plan 标志驱动 runtime 退出
- set_binding_mode 现在生成 BIND_KEY effect 以同步后端按键绑定
- 扩展 action 数据类型支持 window_send_to_workspace 和 window_cycle_output
|
2026-05-27 01:12:04 +08:00 |
|
|
|
ff3b51fd1d
|
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 增加短路返回
|
2026-05-26 13:15:54 +08:00 |
|
|
|
989a1ce6e8
|
feat(listeners): 调整通知结构体字段并补充文档注释
|
2026-05-24 17:58:29 +08:00 |
|
|
|
13fc41f141
|
feat(runtime): 通过 listeners 发送初始状态
|
2026-05-23 23:06:53 +08:00 |
|
|
|
ca9e543cc0
|
feat(listeners): 实现 listener 通知分发和清理功能
|
2026-05-23 21:09:43 +08:00 |
|
|
|
33b0f2f54f
|
refactor(action): 重新设计 action 实现方式
|
2026-05-19 02:55:08 +08:00 |
|
|
|
edde023f5a
|
fix(listeners): 公共头添加 extern "C" 链接说明以支持 C++ 包含
|
2026-05-17 03:36:48 +08:00 |
|
|
|
74319e97f1
|
feat: 添加核心状态变更通知系统
|
2026-05-17 03:20:38 +08:00 |
|
|
|
74be362b1f
|
refactor(base): 通过 typeof 为 array_push 宏添加返回类型推导
|
2026-05-17 03:11:15 +08:00 |
|
|
|
9663097a98
|
fix(action): 修复 switch_workspace_by_index_in_current_output 循环条件错误
|
2026-05-10 12:19:50 +08:00 |
|
|
|
601c0f3d1a
|
refactor: 迁移 CMake 到模块化目录构建并添加新入口
|
2026-05-09 23:03:00 +08:00 |
|
|
|
0d4a907dd8
|
feat(action): 实现切换当前 output 工作区功能
|
2026-05-09 23:00:01 +08:00 |
|
|
|
1f4659e7a4
|
refactor: 使用 workspace_id_invalid() 替代直接比较 ZDWM_WORKSPACE_ID_INVALID
|
2026-05-09 04:09:46 +08:00 |
|
|
|
a60d9f31a7
|
feat(action): 实现 focus_window 窗口焦点切换及 raise 命令
|
2026-05-07 07:20:27 +08:00 |
|
|
|
9275d14c5f
|
feat(runtime): 启动时扫描并接管已有窗口
从 handle_map_request 中提取 populate_window_event 供复用,
新增 backend_scan_windows 扫描 X11 根窗口子树,
runtime_scan 将扫描到的窗口走完整 policy 流程纳入管理。
route_map_request 增加 override_redirect 过滤。
|
2026-05-07 06:36:58 +08:00 |
|
|
|
c1a4795a85
|
feat(state): 初始化 float_rect 并在切换 floating 状态时双向同步
|
2026-05-07 04:11:44 +08:00 |
|
|
|
8fcf46979a
|
feat(action): 绑定 toggle_fullscreen/maximize/floating 快捷键
|
2026-05-07 03:54:30 +08:00 |
|
|
|
56f8380028
|
feat(action): 实现 switch_workspace cycle_layout 和 cycle_output 操作
|
2026-05-07 03:21:27 +08:00 |
|
|
|
2c3c264ddd
|
feat(action): 实现 toggle_fullscreen/maximize/floating/sticky 操作
|
2026-05-07 03:20:24 +08:00 |
|
|
|
3031adf3cb
|
feat(policy): 处理窗口状态变更事件
|
2026-05-07 02:22:16 +08:00 |
|
|
|
1b6a4788be
|
feat(policy): 处理窗口激活请求事件
|
2026-05-07 02:14:38 +08:00 |
|
|
|
474ed8dc69
|
fix(policy): 窗口移除前获取其是否需要自动布局结果
|
2026-05-07 01:59:56 +08:00 |
|
|
|
964de33b23
|
feat(policy): 处理窗口元数据变更事件
|
2026-05-07 01:58:00 +08:00 |
|
|
|
b14be7b8dd
|
feat(policy): 在窗口管理/取消管理时推送窗口列表变更 effect
|
2026-05-05 02:59:16 +08:00 |
|
|
|
f11125d214
|
fix(core): 补充 POINTER_ENTER 事件处理缺失的 break 语句
|
2026-05-05 02:38:30 +08:00 |
|
|
|
70e2477649
|
feat(action): 重构 action 接口为函数指针表并实现 quit 和 raise_or_run
|
2026-05-05 00:44:04 +08:00 |
|
|
|
d6512c531f
|
fix(base): 修复 window_list_cleanup 中 p_delete 参数类型错误
|
2026-05-05 00:42:06 +08:00 |
|
|
|
c7399f014b
|
fix(backend/X11): 修复按键抓取使用错误数组索引的 bug
window_grab_keys 中误用 keys (首元素)代替 key (当前元素)获取
keysym, 导致只有第一个按键能正确注册
|
2026-05-04 22:34:15 +08:00 |
|
|
|
42986fb783
|
feat(command): 添加窗口 bool 状态的 set 命令
|
2026-05-04 20:02:45 +08:00 |
|
|
|
ecc9834b03
|
refactor(command): 从 switch_workspace 命令中移除冗余的 output 字段
|
2026-05-04 17:52:36 +08:00 |
|
|
|
12bfce4745
|
refactor(core): 使用独立 bool 字段代替 geometry_mode 字段
将 fullscreen/maximized/minimized 从互斥枚举拆分为独立 bool 字段,以便
窗口状态切换时能回到上一状态。比如窗口初始为最大化状态,如果进入全屏状
态后从全屏状态退出时还能恢复最大化状态。
|
2026-05-04 04:07:36 +08:00 |
|
|
|
c777b58d80
|
feat(backend/X11): 处理 PropertyNotify 和 ClientMessage 事件
|
2026-05-04 03:03:15 +08:00 |
|
|
|
3349a912cc
|
refactor(plan): 添加往 plan 中新增 effect 相关辅助函数以消除模板代码
|
2026-05-02 23:22:50 +08:00 |
|
|
|
b457d65fb9
|
feat(policy): 完善窗口状态变更时的边框和焦点管理
|
2026-05-02 22:25:11 +08:00 |
|
|
|
d90cebe0c2
|
feat(core+backend/X11): 实现窗口边框管理和焦点跟随鼠标
|
2026-05-02 00:46:13 +08:00 |
|
|
|
1cfa2c4505
|
feat(config): 添加配置窗口边框 API
|
2026-05-01 19:07:21 +08:00 |
|
|
|
3a830e864a
|
fix(test): 更新 assert_default_layouts 匹配当前默认布局注册表
|
2026-05-01 18:56:22 +08:00 |
|
|
|
085a071f23
|
feat(policy): 处理 ConfigureRequest 事件
|
2026-04-29 01:56:31 +08:00 |
|
|
|
1485400b4c
|
refactor(core+backend/X11): 将修改窗口几何属性合并到 CONFIGURE_WINDOW 中
将 MOVE/RESIZE/BORDER_WIDTH 三个效果合并进 CONFIGURE_WINDOW 中,通过
changed_fields 掩码提取有效数据
|
2026-04-29 00:39:19 +08:00 |
|
|
|
a393308704
|
feat(core+backend/X11): 实现窗口状态变更(最大化/最小化/全屏)
|
2026-04-28 03:45:40 +08:00 |
|
|
|
d602b0111e
|
fix(core/policy): 修复切换工作区时 map_effect 使用的错误 union 字段
map_effect 应该使用 .as.map.window ,错误的用了 .as.unmap.window
|
2026-04-28 03:33:36 +08:00 |
|
|
|
78200debf5
|
refactor(core/runtime): 调整布局计算流程
|
2026-04-28 03:28:03 +08:00 |
|
|
|
722d3946c6
|
feat(core+backend/X11): 区分窗口销毁和撤销
|
2026-04-27 22:28:43 +08:00 |
|
|
|
8d838135d6
|
feat(core/runtime): 集成布局计算到主循环
|
2026-04-27 21:06:11 +08:00 |
|
|
|
7413d7439a
|
feat(layouts): 实现 fair/fullscreen/maximize 内置布局
|
2026-04-27 18:38:49 +08:00 |
|
|
|
10fa3740a8
|
refactor(Makefile): 用硬链接代替复制并拆分测试目标
|
2026-04-27 01:28:31 +08:00 |
|