feat: implement xdg-dialog-v1 protocol#1009
Conversation
There was a problem hiding this comment.
Sorry @deepin-wm, you have reached your weekly rate limit of 500000 diff characters.
Please try again later or upgrade to continue using Sourcery
db5a9b6 to
ee32217
Compare
| Q_LOGGING_CATEGORY(lcTlDdm, "treeland.ddm") | ||
|
|
||
| // XdgDialog module | ||
| Q_LOGGING_CATEGORY(lcTlXdgDialog, "treeland.xdg-dialog") |
There was a problem hiding this comment.
某协议相关的日志请用 treeland.protocol.xxxx 这样的结构,其它不符合要求的请用一个新pr修改,你新增的这个就直接改了。
|
|
||
| QString tag; | ||
| QString description; | ||
| uint modal:1; |
8d34244 to
898316b
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
4 similar comments
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: deepin-wm The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
1. Add xdg-dialog module implementing xdg_wm_dialog_v1 and xdg_dialog_v1 interfaces 2. Handle set_modal/unset_modal requests and emit surfaceModalChanged signal through full chain 3. Add lcTlXdgDialog logging category (treeland.protocol.xdg-dialog) 4. Register protocol in Helper, connect modal state to WXdgToplevelSurface 5. Add modal property to WXdgToplevelSurface in waylib and SurfaceWrapper with QML binding 6. Add unit test for protocol registration and signals Log: Added xdg-dialog-v1 protocol support for dialog window identification and modal state management Influence: 1. Verify xdg-dialog-v1 protocol works with dialog clients 2. Test modal dialog state propagation through surface stack 3. Verify duplicate xdg_toplevel triggers error_already_used 4. Test set_modal/unset_modal state transitions feat: 实现 xdg-dialog-v1 协议 1. 新增 xdg-dialog 模块,实现 xdg_wm_dialog_v1 和 xdg_dialog_v1 接口 2. 处理 set_modal/unset_modal 请求,通过完整信号链 发送 surfaceModalChanged 信号 3. 新增 lcTlXdgDialog 日志分类 (treeland.protocol.xdg-dialog) 4. 在 Helper 中注册协议并连接 modal 状态到 WXdgToplevelSurface 5. 在 WXdgToplevelSurface 和 SurfaceWrapper 中 添加 modal 属性及 QML 绑定 6. 添加协议注册和信号的单元测试 Log: 新增 xdg-dialog-v1 协议支持对话框窗口识别与 模态状态管理 Influence: 1. 验证 xdg-dialog-v1 协议与对话框客户端的交互 2. 测试模态对话框状态在 surface 栈中的传播 3. 验证重复 xdg_toplevel 触发 error_already_used 4. 测试 set_modal/unset_modal 状态切换
898316b to
80181e0
Compare
Summary
Implement the xdg-dialog-v1 Wayland protocol, which allows clients to declare whether a window is a dialog (modal or modeless).
Changes
src/modules/xdg-dialog/— implementsxdg_wm_dialog_v1andxdg_dialog_v1interfacessurfaceModalChangedsignal toWXdgToplevelSurface::setModalmodalproperty with signalmodalQML property with bindinglcTlXdgDialogcategorySignal Chain
Protocol Error Handling
xdg_surface→error_already_usedget_xdg_dialogon same surface →error_already_usedFixes: #WM-27