Title: [140596] trunk/Source/WebKit/chromium
Revision
140596
Author
[email protected]
Date
2013-01-23 14:31:21 -0800 (Wed, 23 Jan 2013)

Log Message

Partially revert 104427, change WebWidgetClient::didHandleGestureEvent semantics.
https://bugs.webkit.org/show_bug.cgi?id=107605

Patch by Tien-Ren Chen <[email protected]> on 2013-01-23
Reviewed by Darin Fisher.

Per discussion in https://codereview.chromium.org/11473027/ we decided
not to introduce an enum to WebWidgetClient::didHandleGestureEvent().
Instead, change the semantics of the bool flag to indicate whether the
gesture event is cancelled for disambiguation.

* public/WebWidgetClient.h:
(WebKit::WebWidgetClient::didHandleGestureEvent):
* src/WebViewImpl.cpp:
(WebKit::WebViewImpl::handleGestureEvent):
* tests/WebViewTest.cpp:

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (140595 => 140596)


--- trunk/Source/WebKit/chromium/ChangeLog	2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-01-23 22:31:21 UTC (rev 140596)
@@ -1,3 +1,21 @@
+2013-01-23  Tien-Ren Chen  <[email protected]>
+
+        Partially revert 104427, change WebWidgetClient::didHandleGestureEvent semantics.
+        https://bugs.webkit.org/show_bug.cgi?id=107605
+
+        Reviewed by Darin Fisher.
+
+        Per discussion in https://codereview.chromium.org/11473027/ we decided
+        not to introduce an enum to WebWidgetClient::didHandleGestureEvent().
+        Instead, change the semantics of the bool flag to indicate whether the
+        gesture event is cancelled for disambiguation.
+
+        * public/WebWidgetClient.h:
+        (WebKit::WebWidgetClient::didHandleGestureEvent):
+        * src/WebViewImpl.cpp:
+        (WebKit::WebViewImpl::handleGestureEvent):
+        * tests/WebViewTest.cpp:
+
 2013-01-23  Mark Pilgrim  <[email protected]>
 
         [Chromium] Remove WebArrayBufferView and WebSerializedScriptValue from chromium/public/platform/

Modified: trunk/Source/WebKit/chromium/public/WebWidgetClient.h (140595 => 140596)


--- trunk/Source/WebKit/chromium/public/WebWidgetClient.h	2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/public/WebWidgetClient.h	2013-01-23 22:31:21 UTC (rev 140596)
@@ -168,13 +168,7 @@
     virtual bool isPointerLocked() { return false; }
 
     // Called when a gesture event is handled.
-    enum EventStatus {
-        EventStatusUnprocessed,
-        EventStatusProcessed,
-        EventStatusCancelled
-    };
-    virtual void didHandleGestureEvent(const WebGestureEvent& event, EventStatus) { }
-    virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventSwallowed) { } // deprecated
+    virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled) { }
 
 protected:
     ~WebWidgetClient() { }

Modified: trunk/Source/WebKit/chromium/src/WebViewImpl.cpp (140595 => 140596)


--- trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/src/WebViewImpl.cpp	2013-01-23 22:31:21 UTC (rev 140596)
@@ -695,7 +695,8 @@
 #if ENABLE(GESTURE_EVENTS)
 bool WebViewImpl::handleGestureEvent(const WebGestureEvent& event)
 {
-    WebWidgetClient::EventStatus eventStatus = WebWidgetClient::EventStatusUnprocessed;
+    bool eventSwallowed = false;
+    bool eventCancelled = false; // for disambiguation
 
     // Handle link highlighting outside the main switch to avoid getting lost in the
     // complicated set of cases handled below.
@@ -729,7 +730,7 @@
         OwnPtr<WebGestureCurve> flingCurve = adoptPtr(Platform::current()->createFlingAnimationCurve(event.sourceDevice, WebFloatPoint(event.data.flingStart.velocityX, event.data.flingStart.velocityY), WebSize()));
         m_gestureAnimation = WebActiveGestureAnimation::createAtAnimationStart(flingCurve.release(), this);
         scheduleAnimation();
-        eventStatus = WebWidgetClient::EventStatusProcessed;
+        eventSwallowed = true;
         break;
     }
     case WebInputEvent::GestureFlingCancel:
@@ -737,13 +738,13 @@
             m_gestureAnimation.clear();
             if (m_layerTreeView)
                 m_layerTreeView->didStopFlinging();
-            eventStatus = WebWidgetClient::EventStatusProcessed;
+            eventSwallowed = true;
         }
         break;
     case WebInputEvent::GestureTap: {
         m_client->cancelScheduledContentIntents();
         if (detectContentOnTouch(WebPoint(event.x, event.y))) {
-            eventStatus = WebWidgetClient::EventStatusProcessed;
+            eventSwallowed = true;
             break;
         }
 
@@ -759,13 +760,14 @@
             // FIXME: replace touch adjustment code when numberOfGoodTargets == 1?
             // Single candidate case is currently handled by: https://bugs.webkit.org/show_bug.cgi?id=85101
             if (goodTargets.size() >= 2 && m_client && m_client->didTapMultipleTargets(event, goodTargets)) {
-                eventStatus = WebWidgetClient::EventStatusCancelled;
+                eventSwallowed = true;
+                eventCancelled = true;
                 break;
             }
         }
 
         PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
-        eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+        eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
 
         if (m_selectPopup && m_selectPopup == selectPopup) {
             // That tap triggered a select popup which is the same as the one that
@@ -787,7 +789,7 @@
         m_page->contextMenuController()->clearContextMenu();
         m_contextMenuAllowed = true;
         PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
-        eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+        eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
         m_contextMenuAllowed = false;
 
         break;
@@ -795,14 +797,14 @@
     case WebInputEvent::GestureTapDown: {
         m_client->cancelScheduledContentIntents();
         PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
-        eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+        eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
         break;
     }
     case WebInputEvent::GestureDoubleTap:
         if (m_webSettings->doubleTapToZoomEnabled() && m_minimumPageScaleFactor != m_maximumPageScaleFactor) {
             m_client->cancelScheduledContentIntents();
             animateZoomAroundPoint(WebPoint(event.x, event.y), DoubleTap);
-            eventStatus = WebWidgetClient::EventStatusProcessed;
+            eventSwallowed = true;
             break;
         }
     case WebInputEvent::GestureScrollBegin:
@@ -814,14 +816,14 @@
     case WebInputEvent::GesturePinchEnd:
     case WebInputEvent::GesturePinchUpdate: {
         PlatformGestureEventBuilder platformEvent(mainFrameImpl()->frameView(), event);
-        eventStatus = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent) ? WebWidgetClient::EventStatusProcessed : WebWidgetClient::EventStatusUnprocessed;
+        eventSwallowed = mainFrameImpl()->frame()->eventHandler()->handleGestureEvent(platformEvent);
         break;
     }
     default:
         ASSERT_NOT_REACHED();
     }
-    m_client->didHandleGestureEvent(event, eventStatus);
-    return eventStatus != WebWidgetClient::EventStatusUnprocessed;
+    m_client->didHandleGestureEvent(event, eventCancelled);
+    return eventSwallowed;
 }
 
 void WebViewImpl::transferActiveWheelFlingAnimation(const WebActiveWheelFlingParameters& parameters)

Modified: trunk/Source/WebKit/chromium/tests/WebViewTest.cpp (140595 => 140596)


--- trunk/Source/WebKit/chromium/tests/WebViewTest.cpp	2013-01-23 22:26:38 UTC (rev 140595)
+++ trunk/Source/WebKit/chromium/tests/WebViewTest.cpp	2013-01-23 22:31:21 UTC (rev 140596)
@@ -123,7 +123,7 @@
 class TapHandlingWebViewClient : public WebViewClient {
 public:
     // WebViewClient methods
-    virtual void didHandleGestureEvent(const WebGestureEvent& event, EventStatus eventStatus)
+    virtual void didHandleGestureEvent(const WebGestureEvent& event, bool eventCancelled)
     {
         if (event.type == WebInputEvent::GestureTap) {
             m_tapX = event.x;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to