vcl/source/window/winproc.cxx |   16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

New commits:
commit d1a185f3af74ac4c6fe29e3d54c17133cd8d2db1
Author: Caolán McNamara <caol...@redhat.com>
Date:   Fri Jun 27 13:21:01 2014 +0100

    send wheel scroll events of disabled widgets to its enabled parent first
    
    on scrolling with the wheel scroll if the pointer ends up over a disabled
    widget then the event doesn't go to its parent and so the scrolling
    halts unless the window happens to be the focus window
    
    Change-Id: I57566b5c6e395e0f62d6b928f28e47a0c3486d65

diff --git a/vcl/source/window/winproc.cxx b/vcl/source/window/winproc.cxx
index 1a343a6..e98f7dd 100644
--- a/vcl/source/window/winproc.cxx
+++ b/vcl/source/window/winproc.cxx
@@ -1361,6 +1361,11 @@ static bool ImplCallWheelCommand( Window* pWindow, const 
Point& rPos,
     return false;
 }
 
+static bool acceptableWheelScrollTarget(const Window *pMouseWindow)
+{
+    return (pMouseWindow && pMouseWindow->IsInputEnabled() && 
!pMouseWindow->IsInModalMode());
+}
+
 static bool ImplHandleWheelEvent( Window* pWindow, const SalWheelMouseEvent& 
rEvt, bool scaleDirectly = false )
 {
     ImplDelData aDogTag( pWindow );
@@ -1418,8 +1423,15 @@ static bool ImplHandleWheelEvent( Window* pWindow, const 
SalWheelMouseEvent& rEv
         bIsFloat = true;
     }
 
-    if ( pMouseWindow &&
-         pMouseWindow->IsEnabled() && pMouseWindow->IsInputEnabled() && ! 
pMouseWindow->IsInModalMode() )
+    while (acceptableWheelScrollTarget(pMouseWindow))
+    {
+        if (pMouseWindow->IsEnabled())
+            break;
+        //try the parent if this one is disabled
+        pMouseWindow = pMouseWindow->GetParent();
+    }
+
+    if (acceptableWheelScrollTarget(pMouseWindow) && 
!pMouseWindow->IsInModalMode())
     {
         // transform coordinates to float window frame coordinates
         Point aRelMousePos( pMouseWindow->OutputToScreenPixel(
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to