Commit Graph

25 Commits

Author SHA1 Message Date
079f41ce8a refactor: 从 core 中抽出跨模块契约建立 interface/common 模块分层
引入 interface/(零实现声明层)与 common/(共享 ADT 操作层),把跨模块
契约从 core 实现里抽出来,依赖方向回到单向(base ← interface ← common ←
各实现层)。docs/module-layering.org 记录完整方案与判定标准。

interface/(纯类型与多态接口声明,零 .c):
- types.h / event.h / backend.h 从 core 移入
- effect.h 新建(effect_t 从 plan.h 抽出)

common/(多实现层共用的自包含操作,.h + .c):
- event.{h,c}:event_reset / event_cleanup
- listeners.{h,c}:listeners 维护(add / cleanup);notify 留 core
- window.{h,c}:window_list + layer_props/metadata cleanup + window_classify_layer
- workspace.{h,c}:workspace_desc(从 wm_desc.h 拆出,改真实函数)

window 相关整理:
- window_layer_type_t 上浮 interface/types.h(common 的 classify 需要)
- window_classify_layer 移 common/window
- window_info_t 独立成 core/window_info.h(state/command 共享,不寄生)
- 删除 wm_desc.h,base/window_list 并入 common/window

全项目 include 路径同步更新
2026-06-25 03:00:30 +08:00
b71b66921e refactor(window): 用更通用的尺寸提示(min/max size)替换 fixed_size 标记 2026-06-22 23:22:08 +08:00
adf839bf21 feat(bar): 实现 bar 可见性切换 action 2026-06-06 04:44:56 +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
56f8380028 feat(action): 实现 switch_workspace cycle_layout 和 cycle_output 操作 2026-05-07 03:21:27 +08:00
12bfce4745 refactor(core): 使用独立 bool 字段代替 geometry_mode 字段
将 fullscreen/maximized/minimized 从互斥枚举拆分为独立 bool 字段,以便
窗口状态切换时能回到上一状态。比如窗口初始为最大化状态,如果进入全屏状
态后从全屏状态退出时还能恢复最大化状态。
2026-05-04 04:07:36 +08:00
d90cebe0c2 feat(core+backend/X11): 实现窗口边框管理和焦点跟随鼠标 2026-05-02 00:46:13 +08:00
28ebb086b1 refactor(core/state): 调整 state_window_remove 接口实现
在 state_window_remove 中用 array_erase 替代手写移位,并在删除窗口后将
其 transient 子窗口的 transient_for 重置为 INVALID,避免悬空引用
2026-04-23 04:12:59 +08:00
af4a45a342 refactor(core/policy): 将接口返回类型从 bool 调整为 void
policy_route_event/policy_apply_command 两个函数的 out 参数中已经能包
含返回值所代表的意义了,因此直接将这两个函数的返回类型改为 void
2026-04-22 19:36:50 +08:00
fd843dc826 refactor(core): 提取 window 相关类型和操作到独立模块 2026-04-20 00:20:04 +08:00
a7225836e4 feat(core/policy): 实现 policy_apply_command 命令分发功能 2026-04-19 23:38:43 +08:00
2fc4b33359 style: 更新 .clang-format 规则并重新格式化所有源文件
- 重构模块使用新的代码风格
- 老代码 (src 目录下的代码) 继续使用之前的代码风格

通过在需要不同代码风格的目录下放对应 .clang-format 配置文件实现
2026-04-14 01:52:53 +08:00
d73d5b0b1f core: 添加 output 索引循环切换接口 2026-04-11 05:56:49 +08:00
0f8c35ae6c core: 添加转移 window metadata 数据的接口 2026-04-07 05:47:47 +08:00
5353e4c677 窗口 metadata 添加 role 字段 2026-04-07 05:33:33 +08:00
a89613d37d fix: 更改 window 相关接口注释使其与最新的窗口堆叠方案适配 2026-04-05 23:25:25 +08:00
1d781d66e9 迁移窗口堆叠顺序到新方案(完成) 2026-04-05 23:18:59 +08:00
dee0a19f34 core: 窗口分层类型与接口草案 2026-03-24 23:40:46 +08:00
67f0c169f5 utils 按作用拆成 log/macros/memory 三个模块 2026-03-23 19:05:39 +08:00
34017fb5da 调整数据类型和接口函数命名规范 2026-03-23 12:42:19 +08:00
931dc3d8d5 core: 定义核心事件数据模型并更新其文档 2026-03-21 02:51:43 +08:00
59a6177770 core: 补全 state 容器初始化与实体访问接口 2026-03-14 04:02:00 +08:00
6335013172 core: 抽离状态描述结构并补全 state 容器接口 2026-03-13 04:26:30 +08:00
57c6a831d4 docs: 明确 sticky 窗口规则并修正 core 头文件注释 2026-03-12 06:56:56 +08:00
499030bd04 core: 明确布局函数返回语义与 floating 布局约定 2026-03-12 05:46:28 +08:00