Changeset 167867 in webkit


Ignore:
Timestamp:
Apr 27, 2014 7:09:02 PM (10 years ago)
Author:
eunmi15.lee@samsung.com
Message:

TouchEvent is not handled after releasing any point among touched points.
https://bugs.webkit.org/show_bug.cgi?id=132043

Reviewed by Benjamin Poulain.

Handle TouchEvent until all touched points are released by setting
trackingTouchEvents variable to false when all points are released.

  • UIProcess/WebPageProxy.cpp:

(WebKit::areAllTouchPointsReleased):
(WebKit::WebPageProxy::handleTouchEventSynchronously):
(WebKit::WebPageProxy::handleTouchEventAsynchronously):
(WebKit::WebPageProxy::handleTouchEvent):

Location:
trunk/Source/WebKit2
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r167866 r167867  
     12014-04-27  Eunmi Lee  <eunmi15.lee@samsung.com>
     2
     3        TouchEvent is not handled after releasing any point among touched points.
     4        https://bugs.webkit.org/show_bug.cgi?id=132043
     5
     6        Reviewed by Benjamin Poulain.
     7
     8        Handle TouchEvent until all touched points are released by setting
     9        trackingTouchEvents variable to false when all points are released.
     10
     11        * UIProcess/WebPageProxy.cpp:
     12        (WebKit::areAllTouchPointsReleased):
     13        (WebKit::WebPageProxy::handleTouchEventSynchronously):
     14        (WebKit::WebPageProxy::handleTouchEventAsynchronously):
     15        (WebKit::WebPageProxy::handleTouchEvent):
     16
    1172014-04-27  Alexey Proskuryakov  <ap@apple.com>
    218
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r167861 r167867  
    14931493    return true;
    14941494}
     1495
     1496static bool areAllTouchPointsReleased(const WebTouchEvent& event)
     1497{
     1498    for (const auto& touchPoint : event.touchPoints()) {
     1499        if (touchPoint.state() != WebPlatformTouchPoint::TouchReleased && touchPoint.state() != WebPlatformTouchPoint::TouchCancelled)
     1500            return false;
     1501    }
     1502
     1503    return true;
     1504}
    14951505#endif
    14961506
     
    15141524    m_process->responsivenessTimer()->stop();
    15151525
    1516     if (event.type() == WebEvent::TouchEnd || event.type() == WebEvent::TouchCancel)
     1526    if (areAllTouchPointsReleased(event))
    15171527        m_isTrackingTouchEvents = false;
    15181528}
     
    15301540    m_process->send(Messages::EventDispatcher::TouchEvent(m_pageID, event), 0);
    15311541
    1532     if (event.type() == WebEvent::TouchEnd || event.type() == WebEvent::TouchCancel)
     1542    if (areAllTouchPointsReleased(event))
    15331543        m_isTrackingTouchEvents = false;
    15341544}
    1535 
    15361545#elif ENABLE(TOUCH_EVENTS)
    15371546void WebPageProxy::handleTouchEvent(const NativeWebTouchEvent& event)
     
    15701579    }
    15711580
    1572     if (event.type() == WebEvent::TouchEnd || event.type() == WebEvent::TouchCancel)
     1581    if (areAllTouchPointsReleased(event))
    15731582        m_isTrackingTouchEvents = false;
    15741583}
Note: See TracChangeset for help on using the changeset viewer.