vcl/source/control/imp_listbox.cxx | 2 +- vcl/source/window/floatwin.cxx | 26 ++++++++++++++++++++++---- 2 files changed, 23 insertions(+), 5 deletions(-)
New commits: commit c2d7c9d275a8564428f981e7d146c35f4394741c Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Jun 16 21:21:17 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Jun 17 10:00:27 2020 +0200 we already have a NoHorzPlacement flag so use that to indicate we don't want left/right placement Change-Id: Ibda0d4729b7adc997fd45308ea1cd32674ace92d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96480 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx index c8b337ad0929..a1b704eec9b8 100644 --- a/vcl/source/control/imp_listbox.cxx +++ b/vcl/source/control/imp_listbox.cxx @@ -3078,7 +3078,7 @@ void ImplListBoxFloatingWindow::StartFloat( bool bStartTracking ) pGrandparentOutDev->ReMirror( aRect ); // mouse-button right: close the List-Box-Float-win and don't stop the handling fdo#84795 - StartPopupMode( aRect, FloatWinPopupFlags::Down | FloatWinPopupFlags::AllMouseButtonClose ); + StartPopupMode( aRect, FloatWinPopupFlags::Down | FloatWinPopupFlags::NoHorzPlacement | FloatWinPopupFlags::AllMouseButtonClose ); if( nPos != LISTBOX_ENTRY_NOTFOUND ) mpImplLB->ShowProminentEntry( nPos ); diff --git a/vcl/source/window/floatwin.cxx b/vcl/source/window/floatwin.cxx index a9a3e7163bb2..95f39fba5955 100644 --- a/vcl/source/window/floatwin.cxx +++ b/vcl/source/window/floatwin.cxx @@ -288,15 +288,33 @@ Point FloatingWindow::ImplCalcPos(vcl::Window* pWindow, { nArrangeAry[0] = FloatWinPopupFlags::Up; nArrangeAry[1] = FloatWinPopupFlags::Down; - nArrangeAry[2] = FloatWinPopupFlags::Up; - nArrangeAttempts = 3; + if (nFlags & FloatWinPopupFlags::NoHorzPlacement) + { + nArrangeAry[2] = FloatWinPopupFlags::Up; + nArrangeAttempts = 3; + } + else + { + nArrangeAry[2] = FloatWinPopupFlags::Right; + nArrangeAry[3] = FloatWinPopupFlags::Left; + nArrangeAry[4] = FloatWinPopupFlags::Up; + } } else { nArrangeAry[0] = FloatWinPopupFlags::Down; nArrangeAry[1] = FloatWinPopupFlags::Up; - nArrangeAry[2] = FloatWinPopupFlags::Down; - nArrangeAttempts = 3; + if (nFlags & FloatWinPopupFlags::NoHorzPlacement) + { + nArrangeAry[2] = FloatWinPopupFlags::Down; + nArrangeAttempts = 3; + } + else + { + nArrangeAry[2] = FloatWinPopupFlags::Right; + nArrangeAry[3] = FloatWinPopupFlags::Left; + nArrangeAry[4] = FloatWinPopupFlags::Down; + } } sal_uInt16 nArrangeIndex = 0; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits