sd/source/ui/sidebar/SlideBackground.cxx | 35 ++++++++++++++++++++++--------- sd/source/ui/sidebar/SlideBackground.hxx | 2 + 2 files changed, 27 insertions(+), 10 deletions(-)
New commits: commit 4833ed2f7fed76cba5fa40b0490da14c6838e8b6 Author: Katarina Behrens <[email protected]> Date: Sat Jun 18 14:15:07 2016 +0200 tdf#100441: Fix listbox state in master vs. normal mode Events appear in following order: normal -> master: 1. EID_EDIT_MODE_MASTER, 2. EID_EDIT_VIEW_SELECTION master -> normal: 1. EID_EDIT_MODE_NORMAL, 2. EID_END_TEXT_EDIT This is only partial fix, selecting the right master page in other than normal mode is still broken Change-Id: I2dd91e77c4ed5627079fc9d2b39e40c8e74a9f8e Reviewed-on: https://gerrit.libreoffice.org/26484 Tested-by: Jenkins <[email protected]> Reviewed-by: Katarina Behrens <[email protected]> diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index d2fb73c..10a6c91 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -94,6 +94,7 @@ SlideBackground::SlideBackground( mpGradientItem(), mpHatchItem(), mpBitmapItem(), + mbEditModeChangePending(false), mxFrame(rxFrame), maContext(), mbTitle(false), @@ -302,6 +303,10 @@ void SlideBackground::addListener() tools::EventMultiplexerEvent::EID_CURRENT_PAGE | tools::EventMultiplexerEvent::EID_MAIN_VIEW_ADDED | tools::EventMultiplexerEvent::EID_SHAPE_CHANGED | + tools::EventMultiplexerEvent::EID_EDIT_MODE_NORMAL | + tools::EventMultiplexerEvent::EID_EDIT_MODE_MASTER | + tools::EventMultiplexerEvent::EID_EDIT_VIEW_SELECTION | + tools::EventMultiplexerEvent::EID_END_TEXT_EDIT | tools::EventMultiplexerEvent::EID_VIEW_ADDED); } @@ -321,17 +326,29 @@ IMPL_LINK_TYPED(SlideBackground, EventMultiplexerListener, case tools::EventMultiplexerEvent::EID_SHAPE_CHANGED: populateMasterSlideDropdown(); break; - case tools::EventMultiplexerEvent::EID_MAIN_VIEW_ADDED: + case tools::EventMultiplexerEvent::EID_EDIT_MODE_NORMAL: + case tools::EventMultiplexerEvent::EID_EDIT_MODE_MASTER: + mbEditModeChangePending = true; + break; + case tools::EventMultiplexerEvent::EID_EDIT_VIEW_SELECTION: + case tools::EventMultiplexerEvent::EID_END_TEXT_EDIT: { - ViewShell* pMainViewShell = mrBase.GetMainViewShell().get(); - - if (pMainViewShell) + if (mbEditModeChangePending) { - DrawViewShell* pDrawViewShell = static_cast<DrawViewShell*>(pMainViewShell); - EditMode eMode = pDrawViewShell->GetEditMode(); + ViewShell* pMainViewShell = mrBase.GetMainViewShell().get(); + + if (pMainViewShell) + { + DrawViewShell* pDrawViewShell = static_cast<DrawViewShell*>(pMainViewShell); + EditMode eMode = pDrawViewShell->GetEditMode(); + + if ( eMode == EM_MASTERPAGE) + mpMasterSlide->Disable(); + else // EM_PAGE + mpMasterSlide->Enable(); + } - if ( eMode == EM_MASTERPAGE) - mpMasterSlide->Disable(); + mbEditModeChangePending = false; } } break; @@ -405,8 +422,6 @@ void SlideBackground::updateMasterSlideSelection() SdPage* pMasterPage = static_cast<SdPage*>(&rMasterPage); mpMasterSlide->SelectEntry(pMasterPage->GetName()); } - else - mpMasterSlide->SetNoSelection(); } void SlideBackground::dispose() diff --git a/sd/source/ui/sidebar/SlideBackground.hxx b/sd/source/ui/sidebar/SlideBackground.hxx index 65d9080..1fba18a 100644 --- a/sd/source/ui/sidebar/SlideBackground.hxx +++ b/sd/source/ui/sidebar/SlideBackground.hxx @@ -102,6 +102,8 @@ private: std::unique_ptr< XFillHatchItem > mpHatchItem; std::unique_ptr< XFillBitmapItem > mpBitmapItem; + bool mbEditModeChangePending; + css::uno::Reference<css::frame::XFrame> mxFrame; ::sfx2::sidebar::EnumContext maContext; bool mbTitle; _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
