From bd9544e2e20aa244b3f4c6459f51cb5f11710a71 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Thu, 16 Jun 2016 16:21:52 +0200 Subject: [PATCH] rhbz#1343752 wrong radiobutton and checkbutton behavior in "view" menu --- ...rhbz-1343752-fix-view-status-in-menu.patch | 150 ++++++++++++++++++ 0002-sort-the-array.patch | 28 ++++ libreoffice.spec | 7 +- 3 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 0001-rhbz-1343752-fix-view-status-in-menu.patch create mode 100644 0002-sort-the-array.patch diff --git a/0001-rhbz-1343752-fix-view-status-in-menu.patch b/0001-rhbz-1343752-fix-view-status-in-menu.patch new file mode 100644 index 0000000..6c384fc --- /dev/null +++ b/0001-rhbz-1343752-fix-view-status-in-menu.patch @@ -0,0 +1,150 @@ +From c4c7fe98b0f05329edf7930ff92b44892d4724e6 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Wed, 15 Jun 2016 16:52:26 +0200 +Subject: [PATCH 1/2] rhbz#1343752 fix view status in menu + +... after commit 229fc164dc1773484b74eca016863cf68860e81b . + +Change-Id: Ibfbbb86c81527f008b8e1cbe9d8ca3174a944931 +--- + sd/source/ui/view/ViewShellBase.cxx | 86 +++++++++++++------------------------ + 1 file changed, 30 insertions(+), 56 deletions(-) + +diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx +index e5c92f4..340948a 100644 +--- a/sd/source/ui/view/ViewShellBase.cxx ++++ b/sd/source/ui/view/ViewShellBase.cxx +@@ -1221,13 +1221,13 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) + SfxWhichIter aSetIterator (rSet); + sal_uInt16 nItemId (aSetIterator.FirstWhich()); + +- FrameView *pFrameView; + while (nItemId > 0) + { + bool bState (false); + Reference xResourceId; + try + { ++ // Check if the right view is active + switch (nItemId) + { + case SID_LEFT_PANE_IMPRESS: +@@ -1242,22 +1242,13 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) + bState = xConfiguration->hasResource(xResourceId); + break; + ++ case SID_DRAWINGMODE: + case SID_NORMAL_MULTI_PANE_GUI: +- if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) +- { +- pFrameView = pViewShell->GetFrameView(); +- bState = pFrameView->GetViewShEditMode() == EM_PAGE +- && pFrameView->GetPageKind() == PK_STANDARD; +- } +- break; +- + case SID_SLIDE_MASTER_MODE: +- if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) +- { +- pFrameView = pViewShell->GetFrameView(); +- bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE +- && pFrameView->GetPageKind() == PK_STANDARD; +- } ++ xResourceId = ResourceId::createWithAnchorURL( ++ xContext, FrameworkHelper::msImpressViewURL, ++ FrameworkHelper::msCenterPaneURL); ++ bState = xConfiguration->hasResource(xResourceId); + break; + + case SID_SLIDE_SORTER_MULTI_PANE_GUI: +@@ -1278,30 +1269,18 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) + break; + + case SID_HANDOUT_MASTER_MODE: +- if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) +- { +- pFrameView = pViewShell->GetFrameView(); +- bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE +- && pFrameView->GetPageKind() == PK_HANDOUT; +- } ++ xResourceId = ResourceId::createWithAnchorURL( ++ xContext, FrameworkHelper::msHandoutViewURL, ++ FrameworkHelper::msCenterPaneURL); ++ bState = xConfiguration->hasResource(xResourceId); + break; + + case SID_NOTES_MODE: +- if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) +- { +- pFrameView = pViewShell->GetFrameView(); +- bState = pFrameView->GetViewShEditMode() == EM_PAGE +- && pFrameView->GetPageKind() == PK_NOTES; +- } +- break; +- + case SID_NOTES_MASTER_MODE: +- if (ViewShell* pViewShell = mrBase.GetMainViewShell().get()) +- { +- pFrameView = pViewShell->GetFrameView(); +- bState = pFrameView->GetViewShEditMode() == EM_MASTERPAGE +- && pFrameView->GetPageKind() == PK_NOTES; +- } ++ xResourceId = ResourceId::createWithAnchorURL( ++ xContext, FrameworkHelper::msNotesViewURL, ++ FrameworkHelper::msCenterPaneURL); ++ bState = xConfiguration->hasResource(xResourceId); + break; + + case SID_TOGGLE_TABBAR_VISIBILITY: +@@ -1318,32 +1297,27 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) + { + } + +- // Take the master page mode into account. +- switch (nItemId) ++ // Check if edit mode fits too ++ if (bState) + { +- case SID_NORMAL_MULTI_PANE_GUI: +- case SID_NOTES_MODE: ++ ViewShell* const pCenterViewShell = FrameworkHelper::Instance(mrBase)->GetViewShell( ++ FrameworkHelper::msCenterPaneURL).get(); ++ DrawViewShell* const pShell = dynamic_cast(pCenterViewShell); ++ if (pShell) + { +- // Determine the master page mode. +- ViewShell* pCenterViewShell = FrameworkHelper::Instance(mrBase)->GetViewShell( +- FrameworkHelper::msCenterPaneURL).get(); +- bool bMasterPageMode (false); +- if (DrawViewShell* pShell = dynamic_cast(pCenterViewShell)) ++ switch (nItemId) + { +- if (pShell->GetEditMode() == EM_MASTERPAGE) +- { +- bMasterPageMode = true; +- } ++ case SID_DRAWINGMODE: ++ case SID_NORMAL_MULTI_PANE_GUI: ++ case SID_NOTES_MODE: ++ bState = pShell->GetEditMode() == EM_PAGE; ++ break; ++ case SID_SLIDE_MASTER_MODE: ++ case SID_NOTES_MASTER_MODE: ++ bState = pShell->GetEditMode() == EM_MASTERPAGE; ++ break; + } +- +- bState &= !bMasterPageMode; +- break; + } +- +- case SID_HANDOUT_MASTER_MODE: +- // There is only the master page mode for the handout +- // view so ignore the master page flag. +- break; + } + + // And finally set the state. +-- +2.7.4 + diff --git a/0002-sort-the-array.patch b/0002-sort-the-array.patch new file mode 100644 index 0000000..32d8fa2 --- /dev/null +++ b/0002-sort-the-array.patch @@ -0,0 +1,28 @@ +From 90fa0d8f1a00c690d5199129d26fbe6ee4762972 Mon Sep 17 00:00:00 2001 +From: David Tardon +Date: Thu, 16 Jun 2016 16:11:17 +0200 +Subject: [PATCH 2/2] sort the array + +Change-Id: Iab15a4344d2174db2763603d0107bc9ec372e4fb +--- + sd/source/ui/sidebar/SlideBackground.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx +index 4cd012f..d2fb73c 100644 +--- a/sd/source/ui/sidebar/SlideBackground.cxx ++++ b/sd/source/ui/sidebar/SlideBackground.cxx +@@ -339,9 +339,9 @@ IMPL_LINK_TYPED(SlideBackground, EventMultiplexerListener, + { + static sal_uInt16 SidArray[] = { + SID_ATTR_PAGE_COLOR, ++ SID_ATTR_PAGE_GRADIENT, + SID_ATTR_PAGE_HATCH, + SID_ATTR_PAGE_BITMAP, +- SID_ATTR_PAGE_GRADIENT, + SID_ATTR_PAGE_FILLSTYLE, + SID_DISPLAY_MASTER_BACKGROUND, + SID_DISPLAY_MASTER_OBJECTS, +-- +2.7.4 + diff --git a/libreoffice.spec b/libreoffice.spec index d3d24cd..1060b40 100644 --- a/libreoffice.spec +++ b/libreoffice.spec @@ -55,7 +55,7 @@ Summary: Free Software Productivity Suite Name: libreoffice Epoch: 1 Version: %{libo_version}.0 -Release: 8%{?libo_prerelease}%{?dist} +Release: 9%{?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 and CC0 URL: http://www.libreoffice.org/ @@ -233,6 +233,8 @@ Patch4: 0001-disable-firebird-unit-test.patch Patch5: 0001-never-run-autogen.sh.patch # not upstreamed Patch6: 0001-add-X-TryExec-entries-to-desktop-files.patch +Patch7: 0001-rhbz-1343752-fix-view-status-in-menu.patch +Patch8: 0002-sort-the-array.patch %if 0%{?rhel} # not upstreamed @@ -2235,6 +2237,9 @@ done %endif %changelog +* Thu Jun 16 2016 David Tardon - 1:5.2.0.0-9.beta2-UNBUILT +- rhbz#1343752 wrong radiobutton and checkbutton behavior in "view" menu + * Thu Jun 09 2016 David Tardon - 1:5.2.0.0-8.beta2 - update to 5.2.0 beta2