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())));
    }
}