feat(im-candidate-panel): support tag-based and xprop-based IM candidate panel#948
Conversation
|
Skipping CI for Draft Pull Request. |
1b9abb4 to
ea492c8
Compare
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: asterwyx, glyvut 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 |
ed34f94 to
6c77ae4
Compare
|
TAG Bot New tag: 0.8.9 |
|
TAG Bot New tag: 0.8.10 |
1235f2c to
f70eb7c
Compare
|
TAG Bot New tag: 0.8.11 |
9f88166 to
11e0b41
Compare
|
这个补丁我刚刚测试了应该有问题, 可以用Xwayland启动的QQ试一下, 启动之后应该会没有任何动画地出现QQ窗口, 而且无法被点击 |
未复现,动画倒是有时候有问题 |
你那里是稳定出问题吗? |
不是稳定性的问题, 是QQ打开后整个窗口直接无法响应任何点击行为, 没有复现的话我重新合并一次试试 |
那应该不是这个提交导致的,可以关注下 |
是的, 抱歉我搞错了, 我重新编译测试了一遍, Xwayland窗口是能点击的, 就是动画有问题, 比如QQ主体窗口打开时没有任何动画 |
|
我刚才试了一下, 比如打开多个Xwayland窗口后, 点击行为无法正确聚焦当前窗口的问题遇到了嘛 b1bba46a3959771285378ded4ad4f911.mp4d62fcbd850b8b13a786cb63e25bb32bb.mp4我用的代码库是: https://github.com/LFRon/treeland-fix/tree/master-merge-im-popup |
这个确实有问题 |
…ate panel Support IM candidate panel detection via two paths: - XWayland: reads _DEEPIN_IM_CANDIDATE_PANEL xprop via XCB - Wayland native: detects via xdg-toplevel-tag protocol Windows with IM candidate panel attributes get the same behavior as inputPopup: no decoration, no focus stealing, no window animation, visible across all workspaces, positioned near text input cursor. Log: 支持基于 tag 和 xprop 的输入法候选面板检测 Influence: 具有 IM 候选面板属性的窗口获得与 inputPopup 一致的行为
Add two test clients for IM candidate panel identification: - test_im_candidate_panel_tag: pure C Wayland client - test_im_candidate_panel_xprop: Qt client that sets _DEEPIN_IM_CANDIDATE_PANEL X11 property 添加两个 IM 候选面板测试客户端: - test_im_candidate_panel_tag:纯 C Wayland 客户端 - test_im_candidate_panel_xprop:Qt 客户端 Log: 添加 IM 候选面板测试客户端 Influence: 无
Implement non-blocking X11 property reads via xcb_get_property_unchecked. Poll replies in xwayland_user_event_handler after wlroots reads events, with per-window timer as fallback. 使用 xcb_get_property_unchecked 实现非阻塞 X11 属性读取, 在 xwayland_user_event_handler 中轮询 reply,timer 作为兜底。 Log: 实现异步 X11 属性读取,避免阻塞主线程 Influence: XWayland 窗口属性读取不再阻塞主线程,IM candidate panel 检测正常工作
Support IM candidate panel detection via two paths:
Windows with IM candidate panel attributes get the same behavior as inputPopup: no decoration, no focus stealing, no window animation, visible across all workspaces, positioned near text input cursor.
Log: 支持基于 tag 和 xprop 的输入法候选面板检测
Influence: 具有 IM 候选面板属性的窗口获得与 inputPopup 一致的行为