[Libreoffice-commits] core.git: framework/source
Jan Holesovsky
kendy at collabora.com
Fri Nov 15 02:12:32 PST 2013
framework/source/layoutmanager/toolbarlayoutmanager.cxx | 26 ++++++----------
1 file changed, 11 insertions(+), 15 deletions(-)
New commits:
commit 986644335c3f9e99ec3c6bebc0b75cca0acdf79b
Author: Jan Holesovsky <kendy at collabora.com>
Date: Fri Nov 15 10:59:36 2013 +0100
fdo#66864: Return from full-screen should restore toolbars.
The fix for fdo#37758 was not correct, we shouldn't fiddle with the m_bVisible
itself, but instead react on the m_bMasterHide flag; or at least that is my
understanding of the related framework code (why is it so confusing?!)
Change-Id: I791fcea9e5e5313b6a5b776cb3187cbd1a028386
diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
index bd2f04e..97cfa76 100644
--- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
@@ -294,7 +294,7 @@ Rectangle ToolbarLayoutManager::implts_calcDockingArea()
SolarMutexGuard aGuard;
Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
- if ( pWindow && !xDockWindow->isFloating() && pConstIter->m_bVisible )
+ if ( pWindow && !xDockWindow->isFloating() && pConstIter->m_bVisible && !pConstIter->m_bMasterHide )
{
awt::Rectangle aPosSize = xWindow->getPosSize();
if ( pConstIter->m_aDockedData.m_nDockedArea != nCurrDockingArea )
@@ -442,7 +442,7 @@ bool ToolbarLayoutManager::requestToolbar( const OUString& rResourceURL )
if ( !xUIElement.is() )
bMustCallCreate = true;
- bool bCreateOrShowToolbar( aRequestedToolbar.m_bVisible & !aRequestedToolbar.m_bMasterHide );
+ bool bCreateOrShowToolbar( aRequestedToolbar.m_bVisible && !aRequestedToolbar.m_bMasterHide );
uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow, uno::UNO_QUERY );
if ( xContainerWindow.is() && aRequestedToolbar.m_bFloating )
@@ -681,28 +681,24 @@ void ToolbarLayoutManager::setVisible( bool bVisible )
UIElementVector::iterator pIter;
for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); ++pIter )
{
- pIter->m_bMasterHide = !bVisible;
+ if (!pIter->m_bFloating)
+ {
+ UIElement aUIElement(*pIter);
+ aUIElement.m_bMasterHide = !bVisible;
+ implts_setToolbar(aUIElement);
+ implts_setLayoutDirty();
+ }
+
Window* pWindow = getWindowFromXUIElement( pIter->m_xUIElement );
if ( pWindow )
{
- bool bSetVisible( pIter->m_bVisible & bVisible );
+ bool bSetVisible( pIter->m_bVisible && bVisible );
if ( !bSetVisible )
- {
pWindow->Hide();
-
- UIElement aUIElement( *pIter );
- if ( !aUIElement.m_bFloating )
- implts_setLayoutDirty();
-
- aUIElement.m_bVisible = false;
- implts_setToolbar( aUIElement );
- }
else
{
if ( pIter->m_bFloating )
pWindow->Show(true, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
- else
- implts_setLayoutDirty();
}
}
}
More information about the Libreoffice-commits
mailing list