diff options
Diffstat (limited to 'src/widgets/widgets/qmdisubwindow.cpp')
-rw-r--r-- | src/widgets/widgets/qmdisubwindow.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/widgets/widgets/qmdisubwindow.cpp b/src/widgets/widgets/qmdisubwindow.cpp index 14aeb73baf..be6cb7c54c 100644 --- a/src/widgets/widgets/qmdisubwindow.cpp +++ b/src/widgets/widgets/qmdisubwindow.cpp @@ -1000,7 +1000,9 @@ void QMdiSubWindowPrivate::removeBaseWidget() q->setWindowModified(false); } lastChildWindowTitle.clear(); - baseWidget->setParent(0); + // QTBUG-47993: parent widget can be reset before this call + if (baseWidget->parentWidget() == q) + baseWidget->setParent(0); baseWidget = 0; isWidgetHiddenByUs = false; } @@ -2653,7 +2655,7 @@ void QMdiSubWindow::showShaded() resize(d->internalMinimumSize); // Hide the internal widget if not already hidden by the user. - if (d->baseWidget && !d->baseWidget->isHidden()) { + if (d->baseWidget && !d->baseWidget->isHidden() && !(windowFlags() & Qt::FramelessWindowHint)) { d->baseWidget->hide(); d->isWidgetHiddenByUs = true; } |