summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-14 13:53:23 +0200
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-18 09:25:05 +0200
commita71e285133087714034f3c84a758980c85b3801e (patch)
treef5e01e2c6f1337b4e0c9ade7695de9ab6888e371 /src/gui
parente2203163d9cd03165142d98fa9ba8aaf5a9c3085 (diff)
Ensure transient parents are top level widgets.
When a dialog was parented on a native child widget, its window handle was used as a transient parent. This confused QPlatformWindow::initialGeometry() among other things. Use top level window as is in Qt 4. Task-number: QTBUG-40195 Change-Id: Ic82adc276175f92adde825fb2551274351e41f30 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/qwindow.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp
index 40e9b9723a..d6f9fad070 100644
--- a/src/gui/kernel/qwindow.cpp
+++ b/src/gui/kernel/qwindow.cpp
@@ -1083,6 +1083,11 @@ Qt::WindowState QWindow::windowState() const
void QWindow::setTransientParent(QWindow *parent)
{
Q_D(QWindow);
+ if (parent && !parent->isTopLevel()) {
+ qWarning() << Q_FUNC_INFO << parent << "must be a top level window.";
+ return;
+ }
+
d->transientParent = parent;
QGuiApplicationPrivate::updateBlockedStatus(this);