summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2005-03-15 10:36:22 +0000
committerOliver Bolte <obo@openoffice.org>2005-03-15 10:36:22 +0000
commit68f7d7a5830f695465f01612fd1d23bf349f336d (patch)
tree02d90eb83a5b4c7bae1ca6ab022bee7c9cecb359
parentc476d135cf4f82cf39d3cd839070844d350a7434 (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.cxx17
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() )
{