Index: kdeui/widgets/kmainwindow_p.h =================================================================== --- kdeui/widgets/kmainwindow_p.h (revision 871464) +++ kdeui/widgets/kmainwindow_p.h (revision 871465) @@ -44,6 +44,7 @@ bool settingsDirty:1; bool autoSaveWindowSize:1; bool care_about_geometry:1; + bool sizeApplied:1; bool shuttingDown:1; KConfigGroup autoSaveGroup; QTimer* settingsTimer; Index: kdeui/widgets/kmainwindow.cpp =================================================================== --- kdeui/widgets/kmainwindow.cpp (revision 871464) +++ kdeui/widgets/kmainwindow.cpp (revision 871465) @@ -284,6 +284,8 @@ dockResizeListener = new DockResizeListener(_q); letDirtySettings = true; + + sizeApplied = false; } static bool endsWithHashNumber( const QString& s ) @@ -677,6 +679,8 @@ bool KMainWindow::readPropertiesInternal( KConfig *config, int number ) { + K_D(KMainWindow); + if ( number == 1 ) readGlobalProperties( config ); @@ -691,6 +695,8 @@ if ( cg.hasKey(QLatin1String("ObjectName" )) ) setObjectName( cg.readEntry("ObjectName").toLatin1()); // latin1 is right here + d->sizeApplied = false; // since we are changing config file, reload the size of the window + // if necessary. Do it before the call to applyMainWindowSettings. applyMainWindowSettings(cg); // Menubar, statusbar and toolbar settings. s.setNum(number); @@ -708,7 +714,10 @@ d->letDirtySettings = false; - restoreWindowSize(cg); + if (!d->sizeApplied) { + restoreWindowSize(cg); + d->sizeApplied = true; + } QStatusBar* sb = internalStatusBar(this); if (sb) {