summaryrefslogtreecommitdiff
path: root/sfx2/source/sidebar/Deck.cxx
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2019-02-01 10:56:46 -0500
committerNoel Grandin <noel.grandin@collabora.co.uk>2019-07-26 20:30:36 +0200
commit53644c6d62002879431c36b9da5f6771e5234992 (patch)
treeff5d6494599d4f0355f1698ec604cbcbc6c017a8 /sfx2/source/sidebar/Deck.cxx
parentd13e036ddc56bfdc9decccfa58e2e2b57eac765b (diff)
sfx2: LOK: resize the sidebar after layouting to avoid scrollbars
By resizing the deck we ensure that if the contents do not fit in the existing height, they will after we expand to the minimum height. Also, the minimum height is now the correct one. This prevents seeing vertical scrollbar in LOK, which is very slow and unfriendly, instead renders the full sidebar and lets the client scroll, if necessary. Change-Id: Idc2a622a65074b7afb26263624f2df0b5968f40d Reviewed-on: https://gerrit.libreoffice.org/73523 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sfx2/source/sidebar/Deck.cxx')
-rw-r--r--sfx2/source/sidebar/Deck.cxx17
1 files changed, 14 insertions, 3 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();