[Libreoffice-commits] core.git: Branch 'libreoffice-7-0' - vcl/source

Caolán McNamara (via logerrit) logerrit at kemper.freedesktop.org
Wed Jun 17 08:01:18 UTC 2020


 vcl/source/control/imp_listbox.cxx |    2 +-
 vcl/source/window/floatwin.cxx     |   26 ++++++++++++++++++++++----
 2 files changed, 23 insertions(+), 5 deletions(-)

New commits:
commit b129ce3852ac5666c7d810cff759a33eab5df60a
Author:     Caolán McNamara <caolanm at redhat.com>
AuthorDate: Tue Jun 16 21:21:17 2020 +0100
Commit:     Caolán McNamara <caolanm at redhat.com>
CommitDate: Wed Jun 17 10:00:45 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/+/96428
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>

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;


More information about the Libreoffice-commits mailing list