summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2')
-rw-r--r--sfx2/source/sidebar/Deck.cxx17
-rw-r--r--sfx2/source/sidebar/DeckLayouter.cxx4
-rw-r--r--sfx2/source/sidebar/SidebarController.cxx12
3 files changed, 22 insertions, 11 deletions
diff --git a/sfx2/source/sidebar/Deck.cxx b/sfx2/source/sidebar/Deck.cxx
index 1e56a1516105..48f7291e8af7 100644
--- a/sfx2/source/sidebar/Deck.cxx
+++ b/sfx2/source/sidebar/Deck.cxx
@@ -168,7 +168,7 @@ void Deck::Paint(vcl::RenderContext& rRenderContext, const tools::Rectangle& /*r
void Deck::DataChanged (const DataChangedEvent&)
{
- RequestLayout();
+ RequestLayoutInternal();
}
bool Deck::EventNotify(NotifyEvent& rEvent)
@@ -244,10 +244,10 @@ void Deck::ResetPanels(const SharedPanelContainer& rPanelContainer)
}
maPanels = rPanelContainer;
- RequestLayout();
+ RequestLayoutInternal();
}
-void Deck::RequestLayout()
+void Deck::RequestLayoutInternal()
{
mnMinimalWidth = 0;
mnMinimalHeight = 0;
@@ -266,6 +266,17 @@ void Deck::RequestLayout()
}
}
+void Deck::RequestLayout()
+{
+ RequestLayoutInternal();
+ if (comphelper::LibreOfficeKit::isActive() && mnMinimalHeight > 0)
+ {
+ const Size aParentSize(GetParent()->GetSizePixel().Width(), mnMinimalHeight);
+ GetParent()->SetSizePixel(aParentSize);
+ setPosSizePixel(0, 0, aParentSize.Width(), aParentSize.Height());
+ }
+}
+
vcl::Window* Deck::GetPanelParentWindow()
{
return mpScrollContainer.get();
diff --git a/sfx2/source/sidebar/DeckLayouter.cxx b/sfx2/source/sidebar/DeckLayouter.cxx
index a49f026df63a..b969dc91a8bb 100644
--- a/sfx2/source/sidebar/DeckLayouter.cxx
+++ b/sfx2/source/sidebar/DeckLayouter.cxx
@@ -177,9 +177,6 @@ tools::Rectangle LayoutPanels (
nTotalPreferredHeight += rItem.maLayoutSize.Preferred;
}
- // rMinimalHeight = nTotalMinimumHeight;
- rMinimalHeight = aBox.GetHeight();
-
if (nTotalMinimumHeight > nAvailableHeight
&& ! bShowVerticalScrollBar)
{
@@ -252,6 +249,7 @@ tools::Rectangle LayoutPanels (
const sal_Int32 nUsedHeight (PlacePanels(rLayoutItems, nWidth, eMode, rScrollContainer));
aBox.AdjustTop(nUsedHeight );
+ rMinimalHeight = nUsedHeight;
return aBox;
}
diff --git a/sfx2/source/sidebar/SidebarController.cxx b/sfx2/source/sidebar/SidebarController.cxx
index f099e5f7c5d2..7e1d9ab17bb9 100644
--- a/sfx2/source/sidebar/SidebarController.cxx
+++ b/sfx2/source/sidebar/SidebarController.cxx
@@ -405,13 +405,15 @@ void SidebarController::NotifyResize()
// Place the deck first.
if (bIsDeckVisible)
{
- // No TabBar in LOK.
if (comphelper::LibreOfficeKit::isActive())
{
- // The minimal deck height is unreliable because of
- // the fluid way the panels are stretched. Fix minimum manually.
- // const sal_Int32 nMinimalHeight = mpCurrentDeck->GetMinimalHeight();
- mpCurrentDeck->setPosSizePixel(nDeckX, 0, nWidth, 600);
+ // No TabBar in LOK (use nWidth in full).
+ // Use the minimum height that is large enough to let the
+ // layouter expand the panes maximally (that have a minimal
+ // height before the scrollbar is shown), so we never get
+ // scrollbars (we want scrolling to be done on the rendered
+ // image in the client, which is much faster).
+ mpCurrentDeck->setPosSizePixel(nDeckX, 0, nWidth, 650);
}
else
mpCurrentDeck->setPosSizePixel(nDeckX, 0, nWidth - nTabBarDefaultWidth, nHeight);