Commit Graph

23 Commits

Author SHA1 Message Date
3d258bdc8b feat(bar): 将 tray 作为一个 item 集成到 bar 中 2026-07-18 18:23:52 +08:00
6b75cda128 feat(bar): bar item 扩展钩子功能 bar cell 添加 fixed_width 属性与操作接口
- item type 加入可为空的 after_layout 和 after_draw 钩子
- cell 加 fixed_width 属性, cell api 添加 cell_set_fixed_width 和
  cell_get_region 两个接口
- cell api 改为 const 避免外部修改
2026-06-28 02:18:58 +08:00
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
bf3de7fb92 style: 禁掉 clang-format 的 AlignConsecutiveAssignments 规则并重新格式化整个项目 2026-06-24 13:05:56 +08:00
8f671bd755 feat: bar 点击回调添加按键和修饰键参数
on_click 新增 modifiers/button,使 bar item 可按按键与修饰键区分动作;
因参数增多,回调与 bar_click 改用结构参数封装。同时将 button_t 与
modifier 类型提升至公开头 include/zdwm/types.h 以供使用
2026-06-23 07:42:52 +08:00
af80181897 fix(bar): 计算 left/right 侧的整体区域以修复点击命中检测 2026-06-23 06:59:42 +08:00
42bddf5ac7 feat: 让 bar 支持点击触发动作 2026-06-23 06:57:38 +08:00
6f1421f5b5 fix(bar): 重绘前清空内容并填充背景以消除脏区域残留 2026-06-16 17:49:34 +08:00
9bbdb26f06 fix(bar): 绘制 cell 文本前校验其文本避免渲染空内容 2026-06-16 17:22:52 +08:00
6e3e7ee937 fix(bar): 修复窗口列表布局 bug 导致的窗口列表 cell 重叠 2026-06-16 17:19:21 +08:00
a4bd0b53de feat(bar): 添加窗口列表显示当前 workspace 的窗口列表 2026-06-16 17:14:59 +08:00
3be83aefdf fix(bar): 修复颜色缓存造成的颜色野指针从而导致无法正确渲染 cell 的 bug 2026-06-16 09:14:34 +08:00
dee4073996 feat(bar): 新增绑定模式指示器显示当前 binding mode
- 新增 bar/binding: 监听 binding mode 变更,显示当前模式名
- 支持点击单元循环切换绑定模式(binding_mode_cycle)
- 默认模式下按 show_default 配置决定是否隐藏单元
- 补充 binding 相关默认配置(颜色、内边距、是否显示默认模式)
2026-06-16 02:09:38 +08:00
e8b59e914c feat(bar): layout 颜色未配置时回退到默认背景色和前景色 2026-06-16 01:59:36 +08:00
ac65180203 feat(bar): 按间隔节流 bar_item 更新
- 新增 base/time: time_monotonic_ms 与 time_create_monotonic_timerfd_by_fps
- bar 初始化改用该工具创建 timerfd,移除内联的 itimerspec 拼装
- bar_item_update 按 update_interval_ms 节流,记录 last_updated_time 跳过过早更新
2026-06-16 00:31:07 +08:00
30e9751119 perf(bar): 仅在 bar 需要绘制新内容时才重绘并 flush 后端 2026-06-15 23:27:28 +08:00
41f82d7039 feat(bar): 在 workspace 列表末尾显示当前 workspace 布局符号 2026-06-15 19:50:42 +08:00
dbbbbce379 feat(runtime): 用基于 poll 的事件循环代替阻塞式事件等待 2026-06-10 01:26:05 +08:00
4535e171a0 feat(bar): 实现 bar 布局排版和渲染绘制流程 2026-06-09 20:01:11 +08:00
fa2f058032 fix(bar): 修复 bar_cell_t text 字段可能为野指针 bug 2026-06-09 10:28:35 +08:00
8c145fb1b4 feat(bar): 实现 bar_draw 渲染骨架及文字排版绘制接口 2026-06-08 22:57:34 +08:00
62f6bab611 feat(bar): 新增 text 文字排版模块并将其集成到 bar 生命周期中 2026-06-08 01:24:49 +08:00
3a8c392d90 feat(bar): 实现 bar 初始化和清理功能并将其集成到 runtime 中 2026-06-08 01:21:19 +08:00