diff -uNr old/layoutmanager.cxx new/layoutmanager.cxx --- old/layoutmanager.cxx 2007-06-18 13:50:38.000000000 +0800 +++ new/layoutmanager.cxx 2007-06-21 15:51:52.000000000 +0800 @@ -762,7 +762,7 @@ } implts_sortUIElements(); } - else + else implts_destroyElements(); } @@ -1099,7 +1099,7 @@ aNewToolbar.m_aName = aName; implts_readWindowStateData( aName, aNewToolbar ); - if ( aNewToolbar.m_bVisible && + if ( aNewToolbar.m_bVisible && !aNewToolbar.m_bContextSensitive ) { m_aUIElements.push_back( aNewToolbar ); @@ -3203,7 +3203,7 @@ } // Hide/show the statusbar according to bSetVisible - if ( bSetVisible ) + if ( bSetVisible ) implts_showStatusBar(); else implts_hideStatusBar(); @@ -3215,7 +3215,10 @@ } if ( bSetVisible ) - doLayout(); + { + implts_createNonContextSensitiveToolBars(); + doLayout(); + } else { // Set docking area window size to zero