diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-06-16 21:21:17 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-06-17 10:00:45 +0200 |
commit | b129ce3852ac5666c7d810cff759a33eab5df60a (patch) | |
tree | bd377fca397bc486e4a997e87143e7f543db41cf | |
parent | c1d695d93125fbbd5999ee7f49a30a3360a90747 (diff) |
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/+/96428
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | vcl/source/control/imp_listbox.cxx | 2 | ||||
-rw-r--r-- | vcl/source/window/floatwin.cxx | 26 |
2 files changed, 23 insertions, 5 deletions
diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx index 795385434d67..f264d68685b5 100644 --- a/vcl/source/control/imp_listbox.cxx +++ b/vcl/source/control/imp_listbox.cxx @@ -3098,7 +3098,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; |