[Libreoffice-commits] core.git: vcl/inc vcl/source

Tomaž Vajngerl (via logerrit) logerrit at kemper.freedesktop.org
Tue Mar 26 00:31:54 UTC 2019


 vcl/inc/window.h                   |    1 +
 vcl/source/control/imp_listbox.cxx |    4 ++++
 vcl/source/window/window.cxx       |    1 +
 vcl/source/window/window2.cxx      |   20 ++++++++++++++++++++
 4 files changed, 26 insertions(+)

New commits:
commit 2ccc0a9e24e3f02bfce39af922b5a4972baa2968
Author:     Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
AuthorDate: Mon Mar 25 18:10:26 2019 +0900
Commit:     Tomaž Vajngerl <quikee at gmail.com>
CommitDate: Tue Mar 26 01:31:28 2019 +0100

    tdf#124146 Support panning (pan gesture) of the combobox list
    
    Change-Id: Ic57f4b784d96e69c71caa0e47dbe8117b019a712
    Reviewed-on: https://gerrit.libreoffice.org/69656
    Reviewed-by: Tomaž Vajngerl <quikee at gmail.com>
    Tested-by: Tomaž Vajngerl <quikee at gmail.com>

diff --git a/vcl/inc/window.h b/vcl/inc/window.h
index bee0f55f1425..74882ef77418 100644
--- a/vcl/inc/window.h
+++ b/vcl/inc/window.h
@@ -162,6 +162,7 @@ struct ImplFrameData
     bool                mbInSysObjFocusHdl;     //< within a SysChildren's GetFocus handler
     bool                mbInSysObjToTopHdl;     //< within a SysChildren's ToTop handler
     bool                mbSysObjFocus;          //< does a SysChild have focus
+    sal_Int32           mnTouchPanPosition;
 
     css::uno::Reference< css::datatransfer::dnd::XDragSource > mxDragSource;
     css::uno::Reference< css::datatransfer::dnd::XDropTarget > mxDropTarget;
diff --git a/vcl/source/control/imp_listbox.cxx b/vcl/source/control/imp_listbox.cxx
index a5711ab39cbf..5e72bcf85f55 100644
--- a/vcl/source/control/imp_listbox.cxx
+++ b/vcl/source/control/imp_listbox.cxx
@@ -2506,6 +2506,10 @@ bool ImplListBox::EventNotify( NotifyEvent& rNEvt )
                 bDone = HandleScrollCommand( rCEvt, mpHScrollBar, mpVScrollBar );
             }
         }
+        else if (rCEvt.GetCommand() == CommandEventId::Gesture)
+        {
+            bDone = HandleScrollCommand(rCEvt, mpHScrollBar, mpVScrollBar);
+        }
     }
 
     return bDone || Window::EventNotify( rNEvt );
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index c9ea334c0e66..cdd2aadde311 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -807,6 +807,7 @@ ImplFrameData::ImplFrameData( vcl::Window *pWindow )
     mbInBufferedPaint = false;
     mnDPIX = 96;
     mnDPIY = 96;
+    mnTouchPanPosition = -1;
 }
 
 namespace vcl {
diff --git a/vcl/source/window/window2.cxx b/vcl/source/window/window2.cxx
index dfcec76e9b48..c352b006d67e 100644
--- a/vcl/source/window/window2.cxx
+++ b/vcl/source/window/window2.cxx
@@ -750,6 +750,26 @@ bool Window::HandleScrollCommand( const CommandEvent& rCmd,
             }
             break;
 
+            case CommandEventId::Gesture:
+            {
+                const CommandGestureData* pData = rCmd.GetGestureData();
+                if (pData->meEventType == GestureEventType::PanningBegin)
+                {
+                    mpWindowImpl->mpFrameData->mnTouchPanPosition = pVScrl->GetThumbPos();
+                }
+                else if(pData->meEventType == GestureEventType::PanningUpdate)
+                {
+                    long nOriginalPosition = mpWindowImpl->mpFrameData->mnTouchPanPosition;
+                    pVScrl->DoScroll(nOriginalPosition + (pData->mfOffset));
+                }
+                if (pData->meEventType == GestureEventType::PanningEnd)
+                {
+                    mpWindowImpl->mpFrameData->mnTouchPanPosition = -1;
+                }
+                bRet = true;
+            }
+            break;
+
             case CommandEventId::AutoScroll:
             {
                 const CommandScrollData* pData = rCmd.GetAutoScrollData();


More information about the Libreoffice-commits mailing list