From d4b2875752d06a4811598b1685afcb0485fe2755 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Wed, 20 May 2020 16:41:26 +0100 Subject: center vertically the interactive cell widgets if they won't fit MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Iae7cc83ece1707e9fd38708e4f0911e529565f23 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94605 Tested-by: Jenkins Reviewed-by: Caolán McNamara --- svtools/source/brwbox/editbrowsebox.cxx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/svtools/source/brwbox/editbrowsebox.cxx b/svtools/source/brwbox/editbrowsebox.cxx index 920f0e99faf3..0105082cea5c 100644 --- a/svtools/source/brwbox/editbrowsebox.cxx +++ b/svtools/source/brwbox/editbrowsebox.cxx @@ -1130,13 +1130,21 @@ namespace svt return nullptr; } - void EditBrowseBox::ResizeController(CellControllerRef const & rController, const tools::Rectangle& rRect) { - rController->GetWindow().SetPosSizePixel(rRect.TopLeft(), rRect.GetSize()); + Point aPoint(rRect.TopLeft()); + Size aSize(rRect.GetSize()); + Control& rControl = rController->GetWindow(); + auto nMinHeight = rControl.get_preferred_size().Height(); + if (nMinHeight > aSize.Height()) + { + auto nOffset = (nMinHeight - aSize.Height()) / 2; + aPoint.AdjustY(-nOffset); + aSize.setHeight(nMinHeight); + } + rControl.SetPosSizePixel(aPoint, aSize); } - void EditBrowseBox::InitController(CellControllerRef&, long, sal_uInt16) { } -- cgit v1.2.3