Title: [120959] trunk/Source/WebKit/blackberry
Revision
120959
Author
[email protected]
Date
2012-06-21 13:13:57 -0700 (Thu, 21 Jun 2012)

Log Message

Add a parameter to handletTouchPoint to bypass FatFingers
on touch up. There are some cases where the user may drag
their finger off the element and we want to use the actual
touch point instead of the FatFingers adjusted point.
https://bugs.webkit.org/show_bug.cgi?id=89677

Patch by Genevieve Mak <[email protected]> on 2012-06-21
Reviewed by Antonio Gomes.

* Api/WebPage.cpp:
(BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
* Api/WebPage.h:
* WebKitSupport/TouchEventHandler.cpp:
(BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
* WebKitSupport/TouchEventHandler.h:
(TouchEventHandler):

Modified Paths

Diff

Modified: trunk/Source/WebKit/blackberry/Api/WebPage.cpp (120958 => 120959)


--- trunk/Source/WebKit/blackberry/Api/WebPage.cpp	2012-06-21 19:29:24 UTC (rev 120958)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.cpp	2012-06-21 20:13:57 UTC (rev 120959)
@@ -4165,7 +4165,7 @@
     return handled;
 }
 
-bool WebPage::touchPointAsMouseEvent(const Platform::TouchPoint& point)
+bool WebPage::touchPointAsMouseEvent(const Platform::TouchPoint& point, bool useFatFingers)
 {
     if (d->m_page->defersLoading())
         return false;
@@ -4180,7 +4180,7 @@
     tPoint.m_pos = d->mapFromTransformed(tPoint.m_pos);
     tPoint.m_screenPos = d->mapFromTransformed(tPoint.m_screenPos);
 
-    return d->m_touchEventHandler->handleTouchPoint(tPoint);
+    return d->m_touchEventHandler->handleTouchPoint(tPoint, useFatFingers);
 }
 
 bool WebPagePrivate::dispatchTouchPointAsMouseEventToFullScreenPlugin(PluginView* pluginView, const Platform::TouchPoint& point)

Modified: trunk/Source/WebKit/blackberry/Api/WebPage.h (120958 => 120959)


--- trunk/Source/WebKit/blackberry/Api/WebPage.h	2012-06-21 19:29:24 UTC (rev 120958)
+++ trunk/Source/WebKit/blackberry/Api/WebPage.h	2012-06-21 20:13:57 UTC (rev 120959)
@@ -139,7 +139,7 @@
 
     // For conversion to mouse events.
     void touchEventCancel();
-    bool touchPointAsMouseEvent(const Platform::TouchPoint&);
+    bool touchPointAsMouseEvent(const Platform::TouchPoint&, bool useFatFingers = true);
 
     // Returns true if the key stroke was handled by WebKit.
     bool keyEvent(const Platform::KeyboardEvent&);

Modified: trunk/Source/WebKit/blackberry/ChangeLog (120958 => 120959)


--- trunk/Source/WebKit/blackberry/ChangeLog	2012-06-21 19:29:24 UTC (rev 120958)
+++ trunk/Source/WebKit/blackberry/ChangeLog	2012-06-21 20:13:57 UTC (rev 120959)
@@ -1,3 +1,21 @@
+2012-06-21  Genevieve Mak  <[email protected]>
+
+        Add a parameter to handletTouchPoint to bypass FatFingers
+        on touch up. There are some cases where the user may drag
+        their finger off the element and we want to use the actual
+        touch point instead of the FatFingers adjusted point.
+        https://bugs.webkit.org/show_bug.cgi?id=89677
+
+        Reviewed by Antonio Gomes.
+
+        * Api/WebPage.cpp:
+        (BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):
+        * Api/WebPage.h:
+        * WebKitSupport/TouchEventHandler.cpp:
+        (BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):
+        * WebKitSupport/TouchEventHandler.h:
+        (TouchEventHandler):
+
 2012-06-21  Mike Fenton  <[email protected]>
 
         [BlackBerry] Input mode should adapt automatically to settings changes

Modified: trunk/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp (120958 => 120959)


--- trunk/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp	2012-06-21 19:29:24 UTC (rev 120958)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.cpp	2012-06-21 20:13:57 UTC (rev 120959)
@@ -168,7 +168,7 @@
         m_webPage->clearFocusNode();
 }
 
-bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point)
+bool TouchEventHandler::handleTouchPoint(Platform::TouchPoint& point, bool useFatFingers)
 {
     // Enable input mode on any touch event.
     m_webPage->m_inputHandler->setInputModeEnabled();
@@ -177,6 +177,7 @@
     switch (point.m_state) {
     case Platform::TouchPoint::TouchPressed:
         {
+            // FIXME: bypass FatFingers if useFatFingers is false
             m_lastFatFingersResult.reset(); // Theoretically this shouldn't be required. Keep it just in case states get mangled.
             m_didCancelTouch = false;
             m_lastScreenPoint = point.m_screenPos;
@@ -229,7 +230,7 @@
                 m_webPage->m_inputHandler->notifyClientOfKeyboardVisibilityChange(true);
 
             IntPoint adjustedPoint;
-            if (m_convertTouchToMouse) {
+            if (m_convertTouchToMouse || !useFatFingers) {
                 adjustedPoint = point.m_pos;
                 m_convertTouchToMouse = pureWithMouseConversion;
             } else // Fat finger point in viewport coordinates.

Modified: trunk/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.h (120958 => 120959)


--- trunk/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.h	2012-06-21 19:29:24 UTC (rev 120958)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/TouchEventHandler.h	2012-06-21 20:13:57 UTC (rev 120959)
@@ -35,7 +35,7 @@
     TouchEventHandler(WebPagePrivate* webpage);
     ~TouchEventHandler();
 
-    bool handleTouchPoint(Platform::TouchPoint&);
+    bool handleTouchPoint(Platform::TouchPoint&, bool useFatFingers);
     void touchEventCancel();
     void touchHoldEvent();
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to