From b1d135484940db34bc84940c06a2df1740d19469 Mon Sep 17 00:00:00 2001 From: Heiko Tietze Date: Fri, 4 Jun 2021 14:42:58 +0200 Subject: Resolves tdf#140360 - Provide option to turn off sidebar's minimum width Boolean option Sidebar:General:MinimumWidth introduced defaulting to true; if false the sidebar width is under full user control Change-Id: Iab1413a83adf90461feb5d6416aad174439392ca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116715 Tested-by: Jenkins Reviewed-by: Jim Raykowski (cherry picked from commit f43fdcad400b6ff51f0810d923fe75d5a2cfde0c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117414 Reviewed-by: Xisco Fauli --- include/sfx2/sidebar/SidebarController.hxx | 1 + officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs | 7 +++++++ sfx2/source/sidebar/SidebarController.cxx | 5 +++-- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/include/sfx2/sidebar/SidebarController.hxx b/include/sfx2/sidebar/SidebarController.hxx index cd4f329e99d9..0ff5985a0a52 100644 --- a/include/sfx2/sidebar/SidebarController.hxx +++ b/include/sfx2/sidebar/SidebarController.hxx @@ -185,6 +185,7 @@ private: /// Use a combination of SwitchFlag_* as value. sal_Int32 mnRequestedForceFlags; sal_Int32 mnMaximumSidebarWidth; + bool mbMinimumSidebarWidth; OUString msCurrentDeckId; AsynchronousCall maPropertyChangeForwarder; AsynchronousCall maContextChangeUpdate; diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs index 6ed1d79d80cf..c54c3d6076c0 100644 --- a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs @@ -242,6 +242,13 @@ 500 + + + Minimum width the sidebar can have. If true, the minumum width + is calculated from the largest deck. + + true + diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx index 98c8acbc6c67..c91381d01db9 100644 --- a/sfx2/source/sidebar/SidebarController.cxx +++ b/sfx2/source/sidebar/SidebarController.cxx @@ -136,6 +136,7 @@ SidebarController::SidebarController ( maRequestedContext(), mnRequestedForceFlags(SwitchFlag_NoForce), mnMaximumSidebarWidth(officecfg::Office::UI::Sidebar::General::MaximumWidth::get()), + mbMinimumSidebarWidth(officecfg::Office::UI::Sidebar::General::MinimumWidth::get()), msCurrentDeckId(gsDefaultDeckId), maPropertyChangeForwarder([this](){ return this->BroadcastPropertyChange(); }), maContextChangeUpdate([this](){ return this->UpdateConfigurations(); }), @@ -376,7 +377,7 @@ void SAL_CALL SidebarController::requestLayout() if (mpCurrentDeck && !mpCurrentDeck->isDisposed()) { mpCurrentDeck->RequestLayout(); - nMinimalWidth = mpCurrentDeck->GetMinimalWidth(); + nMinimalWidth = mbMinimumSidebarWidth ? mpCurrentDeck->GetMinimalWidth() : 0; } RestrictWidth(nMinimalWidth); } @@ -471,7 +472,7 @@ void SidebarController::NotifyResize() VclPtr pTitleBar = mpCurrentDeck->GetTitleBar(); if (pTitleBar && pTitleBar->IsVisible()) pTitleBar->SetCloserVisible(CanModifyChildWindowWidth()); - nMinimalWidth = mpCurrentDeck->GetMinimalWidth(); + nMinimalWidth = mbMinimumSidebarWidth ? mpCurrentDeck->GetMinimalWidth() : 0; } RestrictWidth(nMinimalWidth); -- cgit