tdf#141294 Use DPI scale factor for sidebar width limit in config
And don't lock up if the calculated minimum exceeds the maximum
(sidebar remains unresizable in that case, however).
Change-Id: Ibe96a43ad5d6a3fe4132a9fb64fe244ab022668d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137267
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-by: Aron Budea <aron.budea@collabora.com>
diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx
index 0883846..0bd71db 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -121,7 +121,6 @@ SidebarController::SidebarController (
this)),
maCurrentContext(OUString(), OUString()),
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(); }),
@@ -133,6 +132,7 @@ SidebarController::SidebarController (
mpSplitWindow(nullptr),
mnWidthOnSplitterButtonDown(0)
{
mnMaximumSidebarWidth = officecfg::Office::UI::Sidebar::General::MaximumWidth::get() * mpTabBar->GetDPIScaleFactor();
// Decks and panel collections for this sidebar
mpResourceManager = std::make_unique<ResourceManager>();
}
@@ -1433,7 +1433,7 @@ void SidebarController::RestrictWidth (sal_Int32 nWidth)
pSplitWindow->SetItemSizeRange(
nSetId,
Range(nRequestedWidth, getMaximumWidth()));
Range(nRequestedWidth, std::max(nRequestedWidth, getMaximumWidth())));
}
}