Commit Graph

139 Commits

Author SHA1 Message Date
0c7fdf08df backend: X11 后端 window 信息查询接口使用原始封装代替语义化封装
- 拆分 window_get_skip_taskbar / window_get_urgency /
  window_get_states / window_get_geometry_mode 为更底层的
  window_get_atom_array / window_get_wm_hints / atom_to_window_state
- window_get_fixed_size 改为输出参数风格
- 扁平化 window_map_request_event_t,内联原 window_props_t 和
  window_geometry_t 的字段
- window_props_t → window_layer_props_t,仅保留 layer 分类所需的
  types/states
2026-04-09 05:08:39 +08:00
3884d3fc50 backend: X11 后端添加窗口几何信息查询并修正错误语义
- 添加 window_get_geometry/window_get_fixed_size/window_get_geometry_mode
- window_get_atom_array 改为 bool 返回,区分 XCB 调用错误和空数据
- window_get_types/window_get_states 属性为空时返回 true 而非 false
- handle_map_request 重排操作顺序:错误检查提前,失败路径无内存泄漏
- 补充 _NET_WM_STATE_MAXIMIZED_VERT/HORZ atom 注册
2026-04-09 02:23:06 +08:00
0edb6ad6aa backend: X11 后端添加窗口属性和状态查询接口 2026-04-08 19:32:53 +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
9728fad871 backend: X11 后端添加获取窗口 metadata 信息方式 2026-04-07 03:16:51 +08:00
a89613d37d fix: 更改 window 相关接口注释使其与最新的窗口堆叠方案适配 2026-04-05 23:25:25 +08:00
1d781d66e9 迁移窗口堆叠顺序到新方案(完成) 2026-04-05 23:18:59 +08:00
367d825a58 WIP: 迁移窗口堆叠顺序到新方案 2026-04-01 16:09:29 +08:00
196dab9bb3 事件循环框架 2026-04-01 16:08:01 +08:00
90a25fb120 core: 添加窗口所属层级判定 2026-03-31 18:02:38 +08:00
4d8092be43 core: 实现窗口分层栈维护函数 2026-03-25 22:50:04 +08:00
dee0a19f34 core: 窗口分层类型与接口草案 2026-03-24 23:40:46 +08:00
e6b4486f89 base: 将通用动态数组操作接入 layout/state/config 2026-03-24 20:09:55 +08:00
e7a519be6a base: 添加动态数组管理辅助函数 2026-03-24 17:06:44 +08:00
eb376e51b7 core: runtime 接管用户配置模块句柄 2026-03-24 02:42:23 +08:00
3e09dec613 config: 添加用户配置加载流程和默认配置 2026-03-24 02:40:57 +08:00
67f0c169f5 utils 按作用拆成 log/macros/memory 三个模块 2026-03-23 19:05:39 +08:00
32679b354a config: 加载用户配置动态链接库 2026-03-23 14:51:26 +08:00
34017fb5da 调整数据类型和接口函数命名规范 2026-03-23 12:42:19 +08:00
38572bd5f7 utils: 添加 p_strdup_nullable 辅助函数 2026-03-23 10:08:49 +08:00
6c77d9f151 core: layout 模块添加 wm_layout_registry_move 函数 2026-03-23 01:18:41 +08:00
ac22a2b529 feat: 添加屏幕去重功能并调整测试用例目录结构 2026-03-22 04:18:59 +08:00
ad22b0fe93 core: 添加 pointer enter 事件 2026-03-22 02:12:31 +08:00
f573575ed6 Merge branch 'main' into arch_refactor 2026-03-22 01:47:20 +08:00
86a89452a7 fix: 修复 raise_or_run 可能聚焦窗口不对 bug 2026-03-22 01:44:15 +08:00
5d89caff0a 调整 X11 backend 目录结构 2026-03-21 03:01:27 +08:00
931dc3d8d5 core: 定义核心事件数据模型并更新其文档 2026-03-21 02:51:43 +08:00
4c96f2a1db core: 定义按键和鼠标事件 2026-03-16 00:03:22 +08:00
6ec4d8422f core: 添加 X11 后端初始化与屏幕信息探测 2026-03-14 13:53:12 +08:00
57c0250c44 fix: 修复 warn 宏调错内部函数 2026-03-14 13:43:27 +08:00
59a6177770 core: 补全 state 容器初始化与实体访问接口 2026-03-14 04:02:00 +08:00
6335013172 core: 抽离状态描述结构并补全 state 容器接口 2026-03-13 04:26:30 +08:00
cfbc66cf49 core: 补全 layout 注册表与结果集接口
- 新增 src/core/layout.c,实现 layout result 和 registry 的基础操作
- 精简 wm_layout_ctx_t,改为按顺序传递参与布局的窗口 id 列表
- 为 layout API 补充中文前置条件说明
- 在 utils 中补充 p_strdup 和容量扩展辅助函数
2026-03-13 02:23:58 +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
123fe77bbb refactor: 移除 focus_in 事件处理
- 移除独立的 focus_in 事件处理器
- 在 enter_notify 中直接调用 wm_set_current_monitor
2026-03-11 06:46:19 +08:00
1ec92ec3e2 feat: 添加 _NET_WM_STATE_SKIP_TASKBAR 支持
- 新增 skip_taskbar 字段到 client_t
- 在 client_update_window_type 中检测并设置 skip_taskbar 状态
- 状态栏绘制时过滤 skip_taskbar 窗口
2026-03-11 06:45:37 +08:00
cdcafa1216 feat(tray): 增加独立系统托盘模块并补齐兼容性与所有权处理 2026-03-10 07:50:29 +08:00
d8cd91ea48 feat: 状态栏配置接入配置系统 2026-03-09 00:49:09 +08:00
35f0ea9680 feat: 添加壁纸功能 2026-03-08 15:23:09 +08:00
4ccdc9c23d fix: 提高 xcursor_set_pointer_position 操作响应速度 2026-03-08 04:09:07 +08:00
ac4cfc1ed3 feat: 添加 focus_next_monitor 操作用于切换当前 monitor 2026-03-08 04:07:49 +08:00
9fbd7f45e9 fix: 修复 client_send_to_tag 操作的焦点问题 2026-03-08 03:30:55 +08:00
ea47717783 fix: 去除被其他 monitor 覆盖的 monitor 2026-03-08 03:04:24 +08:00
850221793f fix: audio 模块的初始化状态不要暴露给外部 2026-03-08 03:03:02 +08:00
5b41eb97cd fix: 修复窗口 Y 轴约束误用 workarea.width 的问题 2026-03-06 03:35:40 +08:00
cecd7dc2d9 fix: 修复 client_manage 函数中 client 初始化 tag 逻辑 2026-03-03 08:47:08 +08:00
92a810f345 fix: client_send_to_tag 不再切换 monitor 的 tag 2026-03-03 07:55:07 +08:00
9f8b2453fa feat: 焦点切换时屏幕和光标自动跟随
- 按键操作前自动根据光标位置更新当前屏幕
- 新增 enter_notify 事件处理,鼠标进入窗口时自动获取焦点
- 新增 focus_in 事件处理,窗口获得焦点时更新当前屏幕
- 确保焦点操作与 current_monitor 保持同步
2026-03-03 07:26:49 +08:00