|
|
74b30a5d4b
|
fix(runtime): 修复布局函数为空导致的窗口未被布局 bug
|
2026-06-23 03:25:37 +08:00 |
|
|
|
40c2c328cd
|
fix(policy): 修复切换焦点时的边框颜色设置和新窗口可能不触发布局 bug
|
2026-06-23 03:22:45 +08:00 |
|
|
|
71f050c2f3
|
feat(window): 添加判断窗口能否调整大小的辅助函数
|
2026-06-23 02:43:28 +08:00 |
|
|
|
f355b88b82
|
feat(policy): 调整窗口大小时遵循窗口的 max/min size hints
|
2026-06-23 00:53:17 +08:00 |
|
|
|
f3b1466dac
|
fix(backend): 扫描窗口时按 transient 关系排序并过滤无效窗口
|
2026-06-23 00:33:03 +08:00 |
|
|
|
b71b66921e
|
refactor(window): 用更通用的尺寸提示(min/max size)替换 fixed_size 标记
|
2026-06-22 23:22:08 +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 |
|
|
|
7a47f4d44d
|
feat(backend): 添加光标支持
|
2026-06-20 00:59:13 +08:00 |
|
|
|
090266baa5
|
feat(backend): 发送鼠标按键和移动事件
|
2026-06-18 01:19:41 +08:00 |
|
|
|
9f9adf7e2e
|
feat(backend): 写入 _NET_SUPPORTED 属性声明 EWMH 支持能力
|
2026-06-16 23:33:05 +08:00 |
|
|
|
00df685184
|
fix(backend): 修复 backend_poll_event 返回值意义不明导致的事件循环 bug
原因:之前的 backend_poll_event 返回 false 有两种情况
1. 当前就绪的事件已全部处理,没有事件可读了
2. 没有可以转化为感兴趣归一化的事件
当返回值为 false 并且时第二种情况时,底层的 xcb 原始事件未处理完,但不
再处理事件。导致有一部分事件一直无法处理,直到下一批事件待处理时通过文
件描述符状态变更唤醒新一轮的事件读取。这就会导致有些事件处理不及时,造
成卡顿的情况。
通过如下措施解决这个问题:
1. backend_poll_event 返回值只表示是否还有事件未处理完
2. event_t 引入 ZDWM_EVENT_NONE 表示事件为空,无人对该事件感兴趣也不需
要清理
|
2026-06-16 23:16:55 +08:00 |
|
|
|
6d06b61134
|
fix(bar): workspaces 移除窗口时找到后立即 break 避免不必要的遍历
|
2026-06-16 19:13:30 +08:00 |
|
|
|
30dfb19a7b
|
fix(config): 补全默认全景色
|
2026-06-16 19:11:49 +08:00 |
|
|
|
195733e008
|
fix(core): 补全窗口属性变更通知
|
2026-06-16 19:00:19 +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 |
|
|
|
9d35d17493
|
fix(bar): 修复 cell text/fg/bg 字符串内存泄露和 p_delete 参数错误
|
2026-06-16 17:17:00 +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 |
|
|
|
d0127f66e4
|
perf(runtime): bar 不可见时跳过更新避免无效重绘
|
2026-06-15 18:12:50 +08:00 |
|
|
|
4cef809f3c
|
feat(policy): 窗口增删改时触发对应的 listeners 通知
|
2026-06-15 18:08:29 +08:00 |
|
|
|
d97cfba8dd
|
fix(bar): 修复 workspace bar state 销毁时的内存泄露
|
2026-06-15 17:03:28 +08:00 |
|
|
|
539563c53f
|
feat(runtime): 通过 signalfd 将信号处理集成到 poll 事件循环中
|
2026-06-10 01:54:20 +08:00 |
|
|
|
dbbbbce379
|
feat(runtime): 用基于 poll 的事件循环代替阻塞式事件等待
|
2026-06-10 01:26:05 +08:00 |
|
|
|
4e713682e4
|
refactor(policy): 统一 output 切换逻辑并添加 workspace 切换通知
|
2026-06-09 23:05:54 +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 |
|
|
|
87535835a8
|
fix(bar): 修复 workspaces 中 destroy_state 接口内存未正确释放 bug
|
2026-06-08 01:07:15 +08:00 |
|
|
|
fed04cbffc
|
refactor(bar): 隐藏 workspaces 模块内部细节仅保留必要的对外接口
|
2026-06-08 00:35:59 +08:00 |
|
|
|
b510b7b473
|
feat(bar): 初始化 bar 窗口并将 bar 集成到 runtime 启动流程中
|
2026-06-06 09:23:15 +08:00 |
|
|
|
c30c7d0698
|
fix(backend): 修复缺少 colormap 导致的创建 bar 窗口失败
|
2026-06-06 08:56:09 +08:00 |
|
|
|
adf839bf21
|
feat(bar): 实现 bar 可见性切换 action
|
2026-06-06 04:44:56 +08:00 |
|
|
|
be37b17c2e
|
refactor(runtime): 将 runtime 模块从 core 目录迁移至独立的 runtime 目录并封装内部细节
|
2026-06-06 02:08:35 +08:00 |
|
|
|
f82d0b7a87
|
refactor: 移除新架构用不到的老模块
|
2026-06-06 00:40:39 +08:00 |
|
|
|
e9366b64e2
|
feat(backend): 添加创建 bar 窗口接口
|
2026-06-06 00:40:33 +08:00 |
|
|
|
f540c07aad
|
refactor: 将 APP_NAME 宏从 CMake 配置文件生成改为静态头文件
|
2026-06-05 18:59:38 +08:00 |
|
|
|
ebc277201a
|
chore: 删除老旧的测试代码和构建工具脚本
|
2026-06-05 16:23:04 +08:00 |
|
|
|
ff40b3caa0
|
feat(bar): 添加状态栏 bar 模块的基础架构和 workspace 指示器
|
2026-06-05 02:23:01 +08:00 |
|
|
|
d07d2f64e1
|
refactor(policy): 提取切换 workspace 和窗口聚焦的命令构造辅助函数
|
2026-06-04 22:28:39 +08:00 |
|