Title: [172785] branches/safari-600.1-branch/Source/WebCore

Diff

Modified: branches/safari-600.1-branch/Source/WebCore/ChangeLog (172784 => 172785)


--- branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-19 23:39:25 UTC (rev 172784)
+++ branches/safari-600.1-branch/Source/WebCore/ChangeLog	2014-08-19 23:43:40 UTC (rev 172785)
@@ -1,5 +1,34 @@
 2014-08-19  Dana Burkart  <[email protected]>
 
+        Merge r172703. <rdar://problem/17767169>
+
+    2014-08-17  Brent Fulgham  <[email protected]>
+    
+            [Mac] Gesture scrolls don't work in the WebKit1 clients after scrolling a non-scrollable iFrame
+            https://bugs.webkit.org/show_bug.cgi?id=136029
+            <rdar://problem/17767169>
+    
+            Reviewed by Maciej Stachowiak.
+    
+            This is difficult to test in our layout tests, since it relies on specific host application
+            behavior.
+    
+            If the platform widget is a frame view (IFrame), and we are in WebKit1, 'passWheelEventToWidget'
+            has already called 'scrollWheel' on the underlying platform widget. We need to return true in
+            this case to avoid getting multiple copies of the scrollWheel event sent to the platform widget.
+    
+            * page/EventHandler.cpp:
+            (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Revise default stub to
+            accept a Widget* argument.
+            (WebCore::EventHandler::handleWheelEvent):
+            * page/EventHandler.h:
+            * page/mac/EventHandlerMac.mm:
+            (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Check for WK1 case and
+            return 'true' when the underlying NSScrollView has been issues a scrollWheel event.
+            
+    
+2014-08-19  Dana Burkart  <[email protected]>
+
         Merge r172693. <rdar://problem/17577321>
 
     2014-08-15  Dean Jackson  <[email protected]>

Modified: branches/safari-600.1-branch/Source/WebCore/page/EventHandler.cpp (172784 => 172785)


--- branches/safari-600.1-branch/Source/WebCore/page/EventHandler.cpp	2014-08-19 23:39:25 UTC (rev 172784)
+++ branches/safari-600.1-branch/Source/WebCore/page/EventHandler.cpp	2014-08-19 23:43:40 UTC (rev 172785)
@@ -2534,7 +2534,7 @@
     return didHandleEvent;
 }
 
-bool EventHandler::platformCompletePlatformWidgetWheelEvent(const PlatformWheelEvent&, ContainerNode*)
+bool EventHandler::platformCompletePlatformWidgetWheelEvent(const PlatformWheelEvent&, const Widget*, ContainerNode*)
 {
     return true;
 }
@@ -2593,7 +2593,7 @@
                         scrollableArea->setScrolledProgrammatically(false);
                     if (!widget->platformWidget())
                         return true;
-                    return platformCompletePlatformWidgetWheelEvent(event, scrollableContainer.get());
+                    return platformCompletePlatformWidgetWheelEvent(event, widget, scrollableContainer.get());
                 }
             }
         }

Modified: branches/safari-600.1-branch/Source/WebCore/page/EventHandler.h (172784 => 172785)


--- branches/safari-600.1-branch/Source/WebCore/page/EventHandler.h	2014-08-19 23:39:25 UTC (rev 172784)
+++ branches/safari-600.1-branch/Source/WebCore/page/EventHandler.h	2014-08-19 23:43:40 UTC (rev 172785)
@@ -200,7 +200,7 @@
     void platformPrepareForWheelEvents(const PlatformWheelEvent&, const HitTestResult&, RefPtr<Element>& eventTarget, RefPtr<ContainerNode>& scrollableContainer, ScrollableArea*&, bool& isOverWidget);
     void platformRecordWheelEvent(const PlatformWheelEvent&);
     bool platformCompleteWheelEvent(const PlatformWheelEvent&, Element* eventTarget, ContainerNode* scrollableContainer, ScrollableArea*);
-    bool platformCompletePlatformWidgetWheelEvent(const PlatformWheelEvent&, ContainerNode* scrollableContainer);
+    bool platformCompletePlatformWidgetWheelEvent(const PlatformWheelEvent&, const Widget*, ContainerNode* scrollableContainer);
 
 #if ENABLE(IOS_TOUCH_EVENTS) || ENABLE(IOS_GESTURE_EVENTS)
     typedef Vector<RefPtr<Touch>> TouchArray;

Modified: branches/safari-600.1-branch/Source/WebCore/page/mac/EventHandlerMac.mm (172784 => 172785)


--- branches/safari-600.1-branch/Source/WebCore/page/mac/EventHandlerMac.mm	2014-08-19 23:39:25 UTC (rev 172784)
+++ branches/safari-600.1-branch/Source/WebCore/page/mac/EventHandlerMac.mm	2014-08-19 23:43:40 UTC (rev 172785)
@@ -916,8 +916,12 @@
     return didHandleEvent;
 }
 
-bool EventHandler::platformCompletePlatformWidgetWheelEvent(const PlatformWheelEvent& wheelEvent, ContainerNode* scrollableContainer)
+bool EventHandler::platformCompletePlatformWidgetWheelEvent(const PlatformWheelEvent& wheelEvent, const Widget* widget, ContainerNode* scrollableContainer)
 {
+    // WebKit1: Prevent multiple copies of the scrollWheel event from being sent to the NSScrollView widget.
+    if (frameHasPlatformWidget(m_frame) && widget->isFrameView())
+        return true;
+
     if (wheelEvent.useLatchedEventElement() && m_latchedScrollableContainer && scrollableContainer == m_latchedScrollableContainer)
         return !m_startedGestureAtScrollLimit;
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to