summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qmainwindowlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets/widgets/qmainwindowlayout.cpp')
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index aef8b9cbd5..14d7f3d835 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1030,12 +1030,19 @@ bool QMainWindowLayoutState::restoreState(QDataStream &_stream,
Qt::Horizontal, QTabBar::RoundedSouth, mainWindow);
QRect geometry;
stream >> geometry;
- if (!floatingTab->layoutInfo()->restoreState(stream, dockWidgets, false))
+ QDockAreaLayoutInfo *info = floatingTab->layoutInfo();
+ if (!info->restoreState(stream, dockWidgets, false))
return false;
geometry = QDockAreaLayout::constrainedRect(geometry, floatingTab);
floatingTab->move(geometry.topLeft());
floatingTab->resize(geometry.size());
- floatingTab->show();
+
+ // Don't show an empty QDockWidgetGroupWindow if no dock widget is available yet.
+ // reparentWidgets() would be triggered by show(), so do it explicitly here.
+ if (info->onlyHasPlaceholders())
+ info->reparentWidgets(floatingTab);
+ else
+ floatingTab->show();
}
break;
#endif // QT_NO_TABBAR