diff --git a/frame/dbus/dbusxmousearea.h b/frame/dbus/dbusxmousearea.h index 66372cad1..30086f8a4 100644 --- a/frame/dbus/dbusxmousearea.h +++ b/frame/dbus/dbusxmousearea.h @@ -76,6 +76,13 @@ public Q_SLOTS: // METHODS return asyncCallWithArgumentList(QStringLiteral("RegisterFullScreen"), argumentList); } + inline QDBusPendingReply RegisterArea(const qint32 x1, const qint32 y1, const qint32 x2, const qint32 y2, const qint32 flag) + { + QList argumentList; + argumentList << x1 << y1 << x2 << y2 << flag; + return asyncCallWithArgumentList(QStringLiteral("RegisterArea"), argumentList); + } + inline QDBusPendingReply<> UnregisterArea(const QString &in0) { QList argumentList; diff --git a/frame/util/dockpopupwindow.cpp b/frame/util/dockpopupwindow.cpp index e093e2e12..e8bde28e7 100644 --- a/frame/util/dockpopupwindow.cpp +++ b/frame/util/dockpopupwindow.cpp @@ -1,14 +1,21 @@ #include "dockpopupwindow.h" +#include +#include +#include + DWIDGET_USE_NAMESPACE +#define MOUSE_BUTTON 1 << 1 + DockPopupWindow::DockPopupWindow(QWidget *parent) : DArrowRectangle(ArrowBottom, parent), m_model(false), m_acceptDelayTimer(new QTimer(this)), - m_mouseInter(new DBusXMouseArea(this)) + m_mouseInter(new DBusXMouseArea(this)), + m_displayInter(new DBusDisplay(this)) { m_acceptDelayTimer->setSingleShot(true); m_acceptDelayTimer->setInterval(100); @@ -110,7 +117,10 @@ void DockPopupWindow::globalMouseRelease(int button, int x, int y, const QString void DockPopupWindow::registerMouseEvent() { - m_mouseAreaKey = m_mouseInter->RegisterFullScreen(); + // only regist mouse button event + m_mouseAreaKey = m_mouseInter->RegisterArea(0, 0, m_displayInter->screenWidth(), m_displayInter->screenHeight(), MOUSE_BUTTON); +// m_mouseAreaKey = m_mouseInter->RegisterFullScreen(); + connect(m_mouseInter, &DBusXMouseArea::ButtonRelease, this, &DockPopupWindow::globalMouseRelease, Qt::UniqueConnection); } diff --git a/frame/util/dockpopupwindow.h b/frame/util/dockpopupwindow.h index 4f7b4a732..7d2b3f580 100644 --- a/frame/util/dockpopupwindow.h +++ b/frame/util/dockpopupwindow.h @@ -2,6 +2,7 @@ #define DOCKPOPUPWINDOW_H #include "dbus/dbusxmousearea.h" +#include "dbus/dbusdisplay.h" #include @@ -45,6 +46,7 @@ private: QTimer *m_acceptDelayTimer; DBusXMouseArea *m_mouseInter; + DBusDisplay *m_displayInter; }; #endif // DOCKPOPUPWINDOW_H