Skip to content

Commit ab3b997

Browse files
tsic404deepin-bot[bot]
authored andcommitted
fix: launchpad hide at dropEvent
When dragging occurs, the MouseReleaseEvent outside the popup will be a dropEvent,and the window will no longer be closed. log: as title pms: BUG-291969
1 parent f691bcd commit ab3b997

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

frame/popupwindow.cpp

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,25 @@ void PopupWindow::mouseReleaseEvent(QMouseEvent *event)
1616
{
1717
QQuickWindowQmlImpl::mouseReleaseEvent(event);
1818
auto rect = geometry();
19-
if (!rect.contains(event->globalPosition().toPoint())) {
19+
if (!m_dragging && !rect.contains(event->globalPosition().toPoint()) && type() == Qt::Popup) {
2020
close();
2121
}
22+
m_dragging = false;
23+
m_pressing = false;
24+
}
25+
26+
void PopupWindow::mousePressEvent(QMouseEvent *event)
27+
{
28+
m_pressing = true;
29+
return QQuickWindowQmlImpl::mousePressEvent(event);
30+
}
31+
32+
void PopupWindow::mouseMoveEvent(QMouseEvent *event)
33+
{
34+
if (m_pressing) {
35+
m_dragging = true;
36+
}
37+
return QQuickWindowQmlImpl::mouseMoveEvent(event);
2238
}
2339

2440
DS_END_NAMESPACE

frame/popupwindow.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,11 @@ class PopupWindow : public QQuickWindowQmlImpl
1919

2020
protected:
2121
void mouseReleaseEvent(QMouseEvent *event) override;
22+
void mousePressEvent(QMouseEvent *event) override;
23+
void mouseMoveEvent(QMouseEvent *event) override;
24+
25+
private:
26+
bool m_dragging;
27+
bool m_pressing;
2228
};
2329
DS_END_NAMESPACE

0 commit comments

Comments
 (0)