[libreoffice/f20] Resolves: rhbz#1047017 All the selected toolbars became unselected coming out from the full screen o

David Tardon dtardon at fedoraproject.org
Tue Jan 7 19:25:08 UTC 2014


commit 4a4dddbfbf51bda428888b1e06be79ce59eb3a6c
Author: David Tardon <dtardon at redhat.com>
Date:   Tue Jan 7 19:28:30 2014 +0100

    Resolves: rhbz#1047017 All the selected toolbars became unselected coming out from the full screen option

 ...eturn-from-full-screen-should-restore-too.patch |   81 ++++++++++++++++++++
 libreoffice.spec                                   |    6 +-
 2 files changed, 86 insertions(+), 1 deletions(-)
---
diff --git a/0001-fdo-66864-Return-from-full-screen-should-restore-too.patch b/0001-fdo-66864-Return-from-full-screen-should-restore-too.patch
new file mode 100644
index 0000000..25dae6e
--- /dev/null
+++ b/0001-fdo-66864-Return-from-full-screen-should-restore-too.patch
@@ -0,0 +1,81 @@
+From 171f2ca39a08299abe54e92e8096cdaa5e02a4dc Mon Sep 17 00:00:00 2001
+From: Jan Holesovsky <kendy at collabora.com>
+Date: Fri, 15 Nov 2013 10:59:36 +0100
+Subject: [PATCH] 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
+(cherry picked from commit 986644335c3f9e99ec3c6bebc0b75cca0acdf79b)
+Reviewed-on: https://gerrit.libreoffice.org/7065
+Reviewed-by: Jan Holesovsky <kendy at collabora.com>
+Tested-by: Jan Holesovsky <kendy at collabora.com>
+---
+ .../source/layoutmanager/toolbarlayoutmanager.cxx  | 26 +++++++++-------------
+ 1 file changed, 11 insertions(+), 15 deletions(-)
+
+diff --git a/framework/source/layoutmanager/toolbarlayoutmanager.cxx b/framework/source/layoutmanager/toolbarlayoutmanager.cxx
+index 52a0d7b..1bb03d1 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();
+             }
+         }
+     }
+-- 
+1.8.3.4 (Apple Git-47)
+
diff --git a/libreoffice.spec b/libreoffice.spec
index 61344b1..9f42f5d 100644
--- a/libreoffice.spec
+++ b/libreoffice.spec
@@ -42,7 +42,7 @@ Summary:        Free Software Productivity Suite
 Name:           libreoffice
 Epoch:          1
 Version:        %{libo_version}.2
-Release:        2%{?libo_prerelease}%{?dist}
+Release:        3%{?libo_prerelease}%{?dist}
 License:        (MPLv1.1 or LGPLv3+) and LGPLv3 and LGPLv2+ and BSD and (MPLv1.1 or GPLv2 or LGPLv2 or Netscape) and Public Domain and ASL 2.0 and Artistic and MPLv2.0
 Group:          Applications/Productivity
 URL:            http://www.libreoffice.org/default/
@@ -2118,6 +2118,10 @@ update-desktop-database %{_datadir}/applications &> /dev/null || :
 %endif
 
 %changelog
+* Tue Jan 07 2014 David Tardon <dtardon at redhat.com> - 1:4.1.4.2-3
+- Resolves: rhbz#1047017 All the selected toolbars became unselected
+  coming out from the full screen option
+
 * Wed Dec 18 2013 Caolán McNamara <caolanm at redhat.com> - 1:4.1.4.2-2
 - Resolves: rhbz#1040708 rebuild against new libstdc++ to fix std::nth_element
 


More information about the scm-commits mailing list