Kaydet (Commit) a58391b1 authored tarafından Samuel Mehrbrodt's avatar Samuel Mehrbrodt

Related tdf#124263 Make sure sidebar is wide enough for content

If panel's requested minimal size is smaller than current sidebar width,
enlarge the sidebar to fit the content.

Change-Id: I9baa4ef6c01d5563951d4df0d939883fce02e87b
Reviewed-on: https://gerrit.libreoffice.org/69561
Tested-by: Jenkins
Reviewed-by: 's avatarSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
üst cc83ef83
......@@ -1216,9 +1216,16 @@ void SidebarController::RestrictWidth (sal_Int32 nWidth)
{
const sal_uInt16 nId (pSplitWindow->GetItemId(mpParentWindow.get()));
const sal_uInt16 nSetId (pSplitWindow->GetSet(nId));
const sal_Int32 nRequestedWidth
= (TabBar::GetDefaultWidth() + nWidth) * mpTabBar->GetDPIScaleFactor();
// Make sure the sidebar is wide enough to fit the requested content
if (pSplitWindow->GetSizePixel().Width() < nRequestedWidth)
SetChildWindowWidth(nRequestedWidth);
pSplitWindow->SetItemSizeRange(
nSetId,
Range(TabBar::GetDefaultWidth() * mpTabBar->GetDPIScaleFactor() + nWidth,
Range(nRequestedWidth,
getMaximumWidth() * mpTabBar->GetDPIScaleFactor()));
}
}
......
......@@ -23,12 +23,12 @@ void XViewSplitable::testSplit()
uno::Reference< sheet::XViewSplitable > xViewSplitable(init(), UNO_QUERY_THROW);
CPPUNIT_ASSERT_MESSAGE("View is already split", !xViewSplitable->getIsWindowSplit());
xViewSplitable->splitAtPosition(101, 51);
xViewSplitable->splitAtPosition(90, 51);
CPPUNIT_ASSERT_MESSAGE("View wasn't split", xViewSplitable->getIsWindowSplit());
CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong horizontal pixel position",
sal_Int32(101), xViewSplitable->getSplitHorizontal());
sal_Int32(90), xViewSplitable->getSplitHorizontal());
CPPUNIT_ASSERT_EQUAL_MESSAGE("Wrong vertical pixel position",
sal_Int32(51), xViewSplitable->getSplitVertical());
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment