diff -r dee5afe5301f -r 3f74d0d4af4c src/gui/widgets/qmainwindowlayout.cpp --- a/src/gui/widgets/qmainwindowlayout.cpp Mon Mar 15 12:43:09 2010 +0200 +++ b/src/gui/widgets/qmainwindowlayout.cpp Thu Apr 08 14:19:33 2010 +0300 @@ -1627,6 +1627,13 @@ tb->d_func()->plug(currentGapRect); #endif + savedState.clear(); + currentGapPos.clear(); + pluggingWidget = 0; + //applying the state will make sure that the currentGap is updated correctly + //and all the geometries (especially the one from the central widget) is correct + layoutState.apply(false); + #ifndef QT_NO_DOCKWIDGET #ifndef QT_NO_TABBAR if (qobject_cast(widget) != 0) { @@ -1637,13 +1644,6 @@ } #endif #endif - - savedState.clear(); - currentGapPos.clear(); - pluggingWidget = 0; - //applying the state will make sure that the currentGap is updated correctly - //and all the geometries (especially the one from the central widget) is correct - layoutState.apply(false); } if (!widgetAnimator.animating()) { @@ -1772,6 +1772,7 @@ if (savedState.isValid()) { #ifndef QT_NO_DOCKWIDGET savedState.dockAreaLayout.centralWidgetItem = layoutState.dockAreaLayout.centralWidgetItem; + savedState.dockAreaLayout.fallbackToSizeHints = true; #else savedState.centralWidgetItem = layoutState.centralWidgetItem; #endif