summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2020-06-16 21:21:17 +0100
committerCaolán McNamara <caolanm@redhat.com>2020-06-17 10:00:45 +0200
commitb129ce3852ac5666c7d810cff759a33eab5df60a (patch)
treebd377fca397bc486e4a997e87143e7f543db41cf
parentc1d695d93125fbbd5999ee7f49a30a3360a90747 (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.cxx2
-rw-r--r--vcl/source/window/floatwin.cxx26
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;