summaryrefslogtreecommitdiffstats
path: root/src/controls/qquickpopupwindow.cpp
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-24 16:14:56 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-03-24 16:14:56 +0100
commitff5d39f0a8f34cdb034df703e7b2a769c945e1ed (patch)
tree56ec1b5d03809653648e2f50d4ff88be4d7951bd /src/controls/qquickpopupwindow.cpp
parent51156e412b2f91dbbf8c0b6055e6ab4c29370d8a (diff)
parentb69eb02366ad6d8647238f4caf8edfdcaea1b526 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: tests/auto/controls/data/tst_applicationwindow.qml Change-Id: I2ba1f1ba9604f9417102ff076e4ab9ab4d37ab7a
Diffstat (limited to 'src/controls/qquickpopupwindow.cpp')
-rw-r--r--src/controls/qquickpopupwindow.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/controls/qquickpopupwindow.cpp b/src/controls/qquickpopupwindow.cpp
index 02c50a85a..27f4b34a1 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()
@@ -86,6 +94,7 @@ void QQuickPopupWindow::show()
} else {
setPosition(posx, posy);
}
+ emit geometryChanged();
if (!qobject_cast<QQuickPopupWindow *>(transientParent())) // No need for parent menu windows
if (QQuickWindow *w = qobject_cast<QQuickWindow *>(transientParent()))
@@ -119,6 +128,7 @@ void QQuickPopupWindow::updateSize()
{
QSize contentSize = popupContentItem()->childrenRect().size().toSize();
setGeometry(x(), y(), contentSize.width(), contentSize.height());
+ emit geometryChanged();
}
void QQuickPopupWindow::dismissPopup()