summaryrefslogtreecommitdiff
path: root/embeddedobj
diff options
context:
space:
mode:
Diffstat (limited to 'embeddedobj')
-rw-r--r--embeddedobj/source/general/docholder.cxx30
1 files changed, 15 insertions, 15 deletions
diff --git a/embeddedobj/source/general/docholder.cxx b/embeddedobj/source/general/docholder.cxx
index 6afbba4aa50c..75f61282fcc2 100644
--- a/embeddedobj/source/general/docholder.cxx
+++ b/embeddedobj/source/general/docholder.cxx
@@ -691,8 +691,8 @@ bool DocumentHolder::ShowUI( const uno::Reference< css::frame::XLayoutManager >&
if ( xOwnLM.is() && xDocAreaAcc.is() )
{
// make sure that lock state of LM is correct even if an exception is thrown in between
- bool bUnlock = false;
- bool bLock = false;
+ bool bUnlockContainerLM = false;
+ bool bLockOwnLM = false;
try
{
// take over the control over the containers window
@@ -706,18 +706,14 @@ bool DocumentHolder::ShowUI( const uno::Reference< css::frame::XLayoutManager >&
// this must be done after merging menus as we won't get the container menu otherwise
xContainerLM->setDockingAreaAcceptor( uno::Reference < ui::XDockingAreaAcceptor >() );
- bool bIsChart = false;
uno::Reference< lang::XServiceInfo> xServiceInfo(m_xComponent, uno::UNO_QUERY);
- if (xServiceInfo.is() && xServiceInfo->supportsService("com.sun.star.chart2.ChartDocument"))
- bIsChart = true;
- // prevent further changes at this LM
- // TODO: moggi: why is this necessary?
- if (!bIsChart)
+ if (!xServiceInfo.is() || !xServiceInfo->supportsService("com.sun.star.chart2.ChartDocument"))
{
- xContainerLM->setVisible( false );
+ // prevent further changes at this LM
+ xContainerLM->setVisible(false);
xContainerLM->lock();
+ bUnlockContainerLM = true;
}
- bUnlock = true;
// by unlocking the LM each layout change will now resize the containers window; pending layouts will be processed now
xOwnLM->setVisible( true );
@@ -727,7 +723,7 @@ bool DocumentHolder::ShowUI( const uno::Reference< css::frame::XLayoutManager >&
xSupp->setActiveFrame( m_xFrame );
xOwnLM->unlock();
- bLock = true;
+ bLockOwnLM = true;
bResult = true;
// TODO/LATER: The following action should be done only if the window is not hidden
@@ -746,7 +742,7 @@ bool DocumentHolder::ShowUI( const uno::Reference< css::frame::XLayoutManager >&
xSupp->setActiveFrame( nullptr );
// remove control about containers window from own LM
- if ( bLock )
+ if (bLockOwnLM)
xOwnLM->lock();
xOwnLM->setVisible( false );
xOwnLM->setDockingAreaAcceptor( uno::Reference< css::ui::XDockingAreaAcceptor >() );
@@ -762,7 +758,7 @@ bool DocumentHolder::ShowUI( const uno::Reference< css::frame::XLayoutManager >&
// reestablish control of containers window
xContainerLM->setDockingAreaAcceptor( xDocAreaAcc );
xContainerLM->setVisible( true );
- if ( bUnlock )
+ if (bUnlockContainerLM)
xContainerLM->unlock();
}
catch( const uno::Exception& ) {}
@@ -805,8 +801,12 @@ bool DocumentHolder::HideUI( const uno::Reference< css::frame::XLayoutManager >&
xMerge->removeMergedMenuBar();
xContainerLM->setDockingAreaAcceptor( xDocAreaAcc );
- xContainerLM->setVisible( true );
- xContainerLM->unlock();
+ uno::Reference< lang::XServiceInfo> xServiceInfo(m_xComponent, uno::UNO_QUERY);
+ if (!xServiceInfo.is() || !xServiceInfo->supportsService("com.sun.star.chart2.ChartDocument"))
+ {
+ xContainerLM->setVisible(true);
+ xContainerLM->unlock();
+ }
xContainerLM->doLayout();
bResult = true;