summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/controls/qquickpopupwindow.cpp8
-rw-r--r--src/controls/qquickpopupwindow_p.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/controls/qquickpopupwindow.cpp b/src/controls/qquickpopupwindow.cpp
index efc378b6..27f4b34a 100644
--- a/src/controls/qquickpopupwindow.cpp
+++ b/src/controls/qquickpopupwindow.cpp
@@ -54,6 +54,14 @@ QQuickPopupWindow::QQuickPopupWindow() :
{
setFlags(Qt::Popup);
setModality(Qt::ApplicationModal);
+ connect(qApp, SIGNAL(applicationStateChanged(Qt::ApplicationState)),
+ this, SLOT(applicationStateChanged(Qt::ApplicationState)));
+}
+
+void QQuickPopupWindow::applicationStateChanged(Qt::ApplicationState state)
+{
+ if (state != Qt::ApplicationActive)
+ dismissPopup();
}
void QQuickPopupWindow::show()
diff --git a/src/controls/qquickpopupwindow_p.h b/src/controls/qquickpopupwindow_p.h
index 1329a547..d48a375e 100644
--- a/src/controls/qquickpopupwindow_p.h
+++ b/src/controls/qquickpopupwindow_p.h
@@ -81,6 +81,7 @@ protected:
protected Q_SLOTS:
void updateSize();
+ void applicationStateChanged(Qt::ApplicationState state);
private:
void forwardEventToTransientParent(QMouseEvent *);