fix: 修复wayland下设置智能隐藏失败的问题

1、wayland环境下根据窗口Id获取当前激活窗口错误,导致无法获取激活窗口
2、释放鼠标的时候没有触发激活窗口的判断函数,导致任务栏在拖动过程中释放鼠标后,没有发送是否隐藏信号

Log: 修复wayland下设置智能隐藏失败的问题
Influence: 进入wayland环境,任务栏设置智能隐藏,窗口拖动到任务栏下方,观察窗口是否隐藏,窗口移出任务栏,观察任务栏是否显示
Bug: https://pms.uniontech.com/bug-view-154513.html
Change-Id: I4de3b4db019a664f184b0676bb8ce2a77d1d66a9
This commit is contained in:
donghualin
2022-11-11 11:06:20 +00:00
parent ca33b78aed
commit 282227dc2b
12 changed files with 350 additions and 26 deletions

View File

@ -29,6 +29,7 @@
#include "dbuskwaylandwindowmanager.h"
#include "windowinfok.h"
#include "dbusplasmawindow.h"
#include "dbusxeventmonitor.h"
#include <QObject>
#include <QDBusConnection>
@ -76,6 +77,7 @@ public:
private Q_SLOTS:
void handleWlActiveWindowChange();
void onActiveWindowButtonRelease(int type, int x, int y, const QString &key);
private:
Dock *m_dock;
@ -86,6 +88,9 @@ private:
com::deepin::WM *m_wm;
com::deepin::WMSwitcher *m_wmSwitcher;
com::deepin::daemon::kwayland::WindowManager *m_kwaylandManager;
org::deepin::api::XEventMonitor1 *m_xEventMonitor;
QString m_activeWindowMonitorKey;
};
#endif // DBUSHANDLER_H