New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
除了deepin-wine,其他wine生成的托盘图标在被dde-dock收纳后均无法交互 #2262
Comments
已知与
已知与
|
一个不太优雅但能用的缓解措施:
|
@tsic404 研究一下,我记得 deepin-wine 中也没有对这方面做啥特殊的操作 |
然而确实是这样的。。。 |
这个问题已经在处理了。 |
dde-dock use XTest to send mouse button event, but wine do not support XTest extension, so use XEvent to deal with wine. Log: fix wine systray can't interact with Influence: tray Issue: linuxdeepin/developer-center#2262 Bug: https://pms.uniontech.com/bug-view-125181.html Change-Id: Ic3ebee7748be7ee458ef8ed1aa0575237bbbafd5
dde-dock use XTest to send mouse button event, but wine do not support XTest extension, so use XEvent to deal with wine. Log: fix wine systray can't interact with Influence: tray Issue: linuxdeepin/developer-center#2262 Bug: https://pms.uniontech.com/bug-view-125181.html Change-Id: Ic3ebee7748be7ee458ef8ed1aa0575237bbbafd5
@tsic404 7b625b1 没有完全解决问题,它只兼容 winehq-devel,不兼容 winehq-staging。 我的测试方法:
|
试了一下同时发送XTest和XEvent给wine托盘,然而没有效果,winehq-staging还是不能点击。
这个识别代码是没错的,两个都是 |
我装了 deepin 20.5 提供的 kde plasma,里面的 |
这是这个软件在deepin的源中有问题吗? |
@shenmo7192 对,看起来是因为deepin里的kde plasma太老了,xembedsniproxy其实都已经放弃维护了,新版plasma workspace直接接管了xembed托盘。我在archlinux里安装了最新版本的kde plasma,是可以正常点击winehq-staging托盘图标的。 winehq-staging是应用了一系列补丁的wine,也许可以用二分法来找一找是哪个补丁引发了不兼容。 |
wine-staging吗,测试就用原生wine验证了一下😂 |
又测出一个新Bug,补丁在高DPI(缩放大于1)的情况下没效果,好像是点击坐标给错了。只有缩放设成1才能点到。 |
对,可能是受到了这个补丁的影响: |
在这里可以找到打好补丁的wine-staging源代码: |
对了我问一下,为什么一定要用模拟鼠标点击的方法给wine发送托盘事件呢?如果wine托盘显示在dde-dock的顶层,那它不能自己收到点击事件吗? 还是说dde-dock实际上没有移动那个托盘图标,它还在原来的位置,只是被隐藏了,然后dde-dock用窗口捕捉的方法获取了它的图像显示在自己的托盘区域里? XEmbed从字面理解,是把一个X窗口嵌入另一个X窗口。既然如此,那只要设置正确的层叠关系,应该就能让嵌入的窗口自行处理事件吧。要不然事事都让父窗口代理还不烦死了? https://specifications.freedesktop.org/xembed-spec/xembed-spec-latest.html |
|
我有一个猜想,wine-staging是不是检测到了自己的窗口被遮挡,所以不响应托盘事件(因为wine的一个重大问题就是层叠遮挡关系不正确,导致本来不应该被点击的区域收到点击事件,wine-staging可能想尝试修复)。 |
尝试不成功。只要这个 m_trayInter->Manage(); 被调用,左上角的 Wine Tray Window 就会被隐藏,所以没办法做到左上角托盘和dde-dock同时显示。 |
这个是dde-daemon提供的dbus服务,接口在dde-daemon/trayicon/traymanager_ifc.go#L41,调用了dde-daemon/trayicon/traymanager.go#L202 |
包括银河麒麟(UKUI)在内,所有可以和wine-staging托盘正常交互的桌面环境,都不能拖动图标。 所以我可能会尝试删除这个功能,不再对图标进行包装,改为直接嵌入,换取wine staging图标的正常点击。 |
|
20.6 内测更新后deepin-wine的托盘出现要点多次才能反馈的问题 |
建议做成个配置项和编译选项提交PR。其它发行版中可以直接在编译时禁掉这个功能,用deepin的时候,如果使用原生的wine,就通过修改配置禁用功能。 |
或者也可以检测到是非deepin-wine的程序就自动禁止拖动功能。 |
fix wine systray can't interact Log: fix wine systray can't interact Influence: tray Issue: linuxdeepin/developer-center#2262 Bug: https://pms.uniontech.com/bug-view-125181.html Change-Id: I2234e5af1f05ef5f8e208263d55c93bd089110ed
dde-dock use XTest to send mouse button event, but wine do not support XTest extension, so use XEvent to deal with wine. Log: fix wine systray can't interact with Influence: tray Issue: linuxdeepin/developer-center#2262 Bug: https://pms.uniontech.com/bug-view-125181.html Co-authored-by: hudeng <hudeng@deepin.org>
dde-dock use XTest to send mouse button event, but wine do not support XTest extension, so use XEvent to deal with wine. Log: fix wine systray can't interact with Influence: tray Issue: linuxdeepin/developer-center#2262 linuxdeepin/developer-center#4508 Bug: https://pms.uniontech.com/bug-view-125181.html Co-authored-by: hudeng <hudeng@deepin.org>
dde-dock use XTest to send mouse button event, but wine do not support XTest extension, so use XEvent to deal with wine. Log: fix wine systray can't interact with Influence: tray Issue: linuxdeepin/developer-center#2262 linuxdeepin/developer-center#4508 Bug: https://pms.uniontech.com/bug-view-125181.html Co-authored-by: hudeng <hudeng@deepin.org>
dde-dock use XTest to send mouse button event, but wine do not support XTest extension, so use XEvent to deal with wine. Log: fix wine systray can't interact with Influence: tray Issue: linuxdeepin/developer-center#2262 linuxdeepin/developer-center#4508 Bug: https://pms.uniontech.com/bug-view-125181.html Co-authored-by: hudeng <hudeng@deepin.org>
我的发行版是manjaro,桌面环境是gnome45,也存在这样的问题,运行由星火打包的wine微信和用proton转译的原神时这俩的托盘图标都无法交互 |
该问题是 #2263 的扩大。
问题现象
除了deepin-wine,其他wine(从4.0到6.16)生成的托盘图标被
dde-dock
收纳后均无法交互,左击和右击都没反应,在 deepin v20 / uos 20 的各种版本中均能复现,32位和64位wine程序的托盘图标均无法交互。但是其他桌面环境的wine托盘图标收纳功能就没有该问题,收纳后托盘图标依然可以交互。
如果结束
dde-dock
进程,让wine托盘图标单独漂浮在桌面上,此时也能正常交互。复现方法
从deepin软件源安装
wine-4.0 (Debian 4.0-2)
:用wine执行这个:https://github.com/YihaoPeng/QtTrayIconDemo/releases
右击
dde-dock
托盘中的盾牌图标,没反应。执行以下命令让
dde-dock
任务栏消失:右击漂浮在桌面上的盾牌图标,可以交互。注意它可能会被微信QQ等deepin-wine托盘图标挡住,移开才能看到。
评论
虽然deepin-wine在所有桌面环境中均没有托盘图标交互问题,但是:
The text was updated successfully, but these errors were encountered: