diff options
author | Oliver Bolte <obo@openoffice.org> | 2005-03-15 10:36:22 +0000 |
---|---|---|
committer | Oliver Bolte <obo@openoffice.org> | 2005-03-15 10:36:22 +0000 |
commit | 68f7d7a5830f695465f01612fd1d23bf349f336d (patch) | |
tree | 02d90eb83a5b4c7bae1ca6ab022bee7c9cecb359 | |
parent | c476d135cf4f82cf39d3cd839070844d350a7434 (diff) |
INTEGRATION: CWS mav17 (1.22.22); FILE MERGED
2005/02/23 08:46:47 mav 1.22.22.1: #i35991# fix from CD to let the layout on unlock be synchronous
-rw-r--r-- | framework/source/layoutmanager/layoutmanager.cxx | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx index 8fc28891e43a..53aad694c7e3 100644 --- a/framework/source/layoutmanager/layoutmanager.cxx +++ b/framework/source/layoutmanager/layoutmanager.cxx @@ -2,9 +2,9 @@ * * $RCSfile: layoutmanager.cxx,v $ * - * $Revision: 1.25 $ + * $Revision: 1.26 $ * - * last change: $Author: obo $ $Date: 2005-03-15 09:34:29 $ + * last change: $Author: obo $ $Date: 2005-03-15 11:36:22 $ * * The Contents of this file are made available subject to the terms of * either of the following licenses @@ -3563,7 +3563,7 @@ IMPL_LINK( LayoutManager, WindowEventListener, VclSimpleEvent*, pEvent ) { pToolBox = (ToolBox *)pWindow; aToolbarName = pToolBox->GetSmartHelpId().GetStr(); - if ( aToolbarName.getLength() > 0 ) + if (( aToolbarName.getLength() > 0 ) && ( m_nLockCount == 0 )) m_aAsyncLayoutTimer.Start(); } /* SAFE AREA ----------------------------------------------------------------------------------------------- */ @@ -4835,8 +4835,14 @@ throw (RuntimeException) RTL_LOGFILE_TRACE1( "framework (cd100003) ::LayoutManager::unlock lockCount=%d", m_nLockCount ); // conform to documentation: unlock with lock count == 0 means force a layout + + WriteGuard aWriteLock( m_aLock ); if ( bDoLayout ) - doLayout(); + m_aAsyncLayoutTimer.Stop(); + aWriteLock.unlock(); + + if ( bDoLayout ) + implts_doLayout( sal_True ); } void SAL_CALL LayoutManager::doLayout() @@ -6217,7 +6223,8 @@ throw( css::uno::RuntimeException ) if ( aLink.IsSet() ) aLink.Call( &m_aAsyncLayoutTimer ); } - m_aAsyncLayoutTimer.Start(); + if ( m_nLockCount == 0 ) + m_aAsyncLayoutTimer.Start(); } else if ( m_xFrame.is() && aEvent.Source == m_xFrame->getContainerWindow() ) { |