Blame SOURCES/0060-fdo-66864-Return-from-full-screen-should-restore-too.patch

f0633d
From 171f2ca39a08299abe54e92e8096cdaa5e02a4dc Mon Sep 17 00:00:00 2001
f0633d
From: Jan Holesovsky <kendy@collabora.com>
f0633d
Date: Fri, 15 Nov 2013 10:59:36 +0100
f0633d
Subject: [PATCH 060/109] fdo#66864: Return from full-screen should restore
f0633d
 toolbars.
f0633d
f0633d
The fix for fdo#37758 was not correct, we shouldn't fiddle with the m_bVisible
f0633d
itself, but instead react on the m_bMasterHide flag; or at least that is my
f0633d
understanding of the related framework code (why is it so confusing?!)
f0633d
f0633d
Change-Id: I791fcea9e5e5313b6a5b776cb3187cbd1a028386
f0633d
(cherry picked from commit 986644335c3f9e99ec3c6bebc0b75cca0acdf79b)
f0633d
Reviewed-on: https://gerrit.libreoffice.org/7065
f0633d
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
f0633d
Tested-by: Jan Holesovsky <kendy@collabora.com>
f0633d
---
f0633d
 .../source/layoutmanager/toolbarlayoutmanager.cxx  | 26 +++++++++-------------
f0633d
 1 file changed, 11 insertions(+), 15 deletions(-)
f0633d
f0633d
diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
f0633d
index 52a0d7b..1bb03d1 100644
f0633d
--- a/framework/source/layoutmanager/toolbarlayoutmanager.cxx
f0633d
+++ b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
f0633d
@@ -294,7 +294,7 @@ Rectangle ToolbarLayoutManager::implts_calcDockingArea()
f0633d
                 SolarMutexGuard aGuard;
f0633d
 
f0633d
                 Window* pWindow = VCLUnoHelper::GetWindow( xWindow );
f0633d
-                if ( pWindow && !xDockWindow->isFloating() && pConstIter->m_bVisible )
f0633d
+                if ( pWindow && !xDockWindow->isFloating() && pConstIter->m_bVisible && !pConstIter->m_bMasterHide )
f0633d
                 {
f0633d
                     awt::Rectangle aPosSize = xWindow->getPosSize();
f0633d
                     if ( pConstIter->m_aDockedData.m_nDockedArea != nCurrDockingArea )
f0633d
@@ -442,7 +442,7 @@ bool ToolbarLayoutManager::requestToolbar( const OUString& rResourceURL )
f0633d
     if ( !xUIElement.is() )
f0633d
         bMustCallCreate = true;
f0633d
 
f0633d
-    bool bCreateOrShowToolbar( aRequestedToolbar.m_bVisible & !aRequestedToolbar.m_bMasterHide );
f0633d
+    bool bCreateOrShowToolbar( aRequestedToolbar.m_bVisible && !aRequestedToolbar.m_bMasterHide );
f0633d
 
f0633d
     uno::Reference< awt::XWindow2 > xContainerWindow( m_xContainerWindow, uno::UNO_QUERY );
f0633d
     if ( xContainerWindow.is() && aRequestedToolbar.m_bFloating )
f0633d
@@ -681,28 +681,24 @@ void ToolbarLayoutManager::setVisible( bool bVisible )
f0633d
     UIElementVector::iterator pIter;
f0633d
     for ( pIter = aUIElementVector.begin(); pIter != aUIElementVector.end(); ++pIter )
f0633d
     {
f0633d
-        pIter->m_bMasterHide = !bVisible;
f0633d
+        if (!pIter->m_bFloating)
f0633d
+        {
f0633d
+            UIElement aUIElement(*pIter);
f0633d
+            aUIElement.m_bMasterHide = !bVisible;
f0633d
+            implts_setToolbar(aUIElement);
f0633d
+            implts_setLayoutDirty();
f0633d
+        }
f0633d
+
f0633d
         Window* pWindow = getWindowFromXUIElement( pIter->m_xUIElement );
f0633d
         if ( pWindow )
f0633d
         {
f0633d
-            bool bSetVisible( pIter->m_bVisible & bVisible );
f0633d
+            bool bSetVisible( pIter->m_bVisible && bVisible );
f0633d
             if ( !bSetVisible )
f0633d
-            {
f0633d
                 pWindow->Hide();
f0633d
-
f0633d
-                UIElement aUIElement( *pIter );
f0633d
-                if ( !aUIElement.m_bFloating )
f0633d
-                    implts_setLayoutDirty();
f0633d
-
f0633d
-                aUIElement.m_bVisible = false;
f0633d
-                implts_setToolbar( aUIElement );
f0633d
-            }
f0633d
             else
f0633d
             {
f0633d
                 if ( pIter->m_bFloating )
f0633d
                     pWindow->Show(true, SHOW_NOFOCUSCHANGE | SHOW_NOACTIVATE );
f0633d
-                else
f0633d
-                    implts_setLayoutDirty();
f0633d
             }
f0633d
         }
f0633d
     }
f0633d
-- 
f0633d
1.8.4.2
f0633d