|
|
88129293a0
|
feat: 补发 ConfigureNotify 通知客户端实际几何
当 WM 拒绝窗口的 ConfigureRequest(因窗口需要重新布局)或映射
窗口时,按 ICCCM 规范主动向客户端发送 synthetic ConfigureNotify,
告知其当前真实几何,避免客户端状态不一致。
- core: 新增 NOTIFY_CONFIGURE 命令与 CONFIGURE_NOTIFY 效果,
由 policy 在 window_need_layout 分支生成,plan 层下发
- backend(x11): 新增 configure 批次,map/notify 时查询实际几何
并合成 ConfigureNotify 事件下发
|
2026-07-29 04:31:28 +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 |
|
|
|
9a1e015fc1
|
feat: 添加 MOD4 + 鼠标右键调整窗口大小功能
|
2026-06-22 00:48:14 +08:00 |
|
|
|
4e7ab45864
|
feat: 添加 MOD4 + 鼠标左键移动窗口功能
|
2026-06-21 16:30:59 +08:00 |
|
|
|
b8cd40df9f
|
feat(backend): 支持鼠标抓取功能
|
2026-06-20 01:06:30 +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 |
|
|
|
3349a912cc
|
refactor(plan): 添加往 plan 中新增 effect 相关辅助函数以消除模板代码
|
2026-05-02 23:22:50 +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 |
|
|
|
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 |
|
|
|
722d3946c6
|
feat(core+backend/X11): 区分窗口销毁和撤销
|
2026-04-27 22:28:43 +08:00 |
|
|
|
c93e78bbd6
|
feat(core+backend/X11): 完成快捷键绑定和触发功能
|
2026-04-27 01:09:23 +08:00 |
|
|
|
f3b8be8cf1
|
feat(backend/X11): 实现按键抓取功能
|
2026-04-26 19:03:18 +08:00 |
|
|
|
fc68e75f82
|
refactor(backend/X11): 重构 effect 应用为延迟批量模式并添加 KILL_WINDOW 支持
- 添加 ZDWM_EFFECT_KILL_WINDOW 副作用和 WM_DELETE_WINDOW 协议支持
- 将 backend_apply_effect 从即时调用 X11 拆分为 merge + batch apply 两阶段:
- 先收集 effect 到后端持有的列表
- 再按 unmap(grab server) → map → kill → configure → focus 顺序统一提交
|
2026-04-23 04:37:34 +08:00 |
|
|
|
413e68f572
|
refactor(core/plan): 使用 need_relayout 简化 dirty_flags
|
2026-04-22 19:09:21 +08:00 |
|
|
|
a7225836e4
|
feat(core/policy): 实现 policy_apply_command 命令分发功能
|
2026-04-19 23:38:43 +08:00 |
|
|
|
22cd362724
|
feat(backend/X11): 实现 backend_apply_effect 接口以提交 X11 副作用
|
2026-04-19 04:49:02 +08:00 |
|
|
|
9cb808c272
|
feat(core/plan): 扩展 effect 类型
|
2026-04-18 22:31:20 +08:00 |
|
|
|
2fc4b33359
|
style: 更新 .clang-format 规则并重新格式化所有源文件
- 重构模块使用新的代码风格
- 老代码 (src 目录下的代码) 继续使用之前的代码风格
通过在需要不同代码风格的目录下放对应 .clang-format 配置文件实现
|
2026-04-14 01:52:53 +08:00 |
|
|
|
6561b16be0
|
feat(core): 引入 plan/effect 执行骨架
新增 plan/effect 数据结构与基础操作
在 runtime 中接入 event -> command_buffer -> plan -> backend 流程
补齐 policy/backend 接口并同步更新测试构建
|
2026-04-13 05:56:31 +08:00 |
|