diff options
| author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-24 16:14:56 +0100 |
|---|---|---|
| committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-03-24 16:14:56 +0100 |
| commit | ff5d39f0a8f34cdb034df703e7b2a769c945e1ed (patch) | |
| tree | 56ec1b5d03809653648e2f50d4ff88be4d7951bd /src/controls/qquickpopupwindow.cpp | |
| parent | 51156e412b2f91dbbf8c0b6055e6ab4c29370d8a (diff) | |
| parent | b69eb02366ad6d8647238f4caf8edfdcaea1b526 (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.cpp | 10 |
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() |
