Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1049)

Unified Diff: content/browser/renderer_host/input/motion_event_web.cc

Issue 247433003: Mark touchcancel events as uncancelable (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: avi CR feedback Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/motion_event_web.cc
diff --git a/content/browser/renderer_host/input/motion_event_web.cc b/content/browser/renderer_host/input/motion_event_web.cc
index 07b65142dd0273f009f119953145b8fc3e266e89..31ae995746a2611c31dd272b9c825d1f819e86a9 100644
--- a/content/browser/renderer_host/input/motion_event_web.cc
+++ b/content/browser/renderer_host/input/motion_event_web.cc
@@ -5,6 +5,7 @@
#include "content/browser/renderer_host/input/motion_event_web.h"
#include "base/logging.h"
+#include "content/common/input/web_touch_event_traits.h"
using blink::WebInputEvent;
using blink::WebTouchEvent;
@@ -13,31 +14,24 @@ using blink::WebTouchPoint;
namespace content {
namespace {
-bool AllTouchPointsHaveState(const WebTouchEvent& event,
- WebTouchPoint::State state) {
- for (size_t i = 0; i < event.touchesLength; ++i) {
- if (event.touches[i].state != state)
- return false;
- }
- return true;
-}
-
ui::MotionEvent::Action GetActionFrom(const WebTouchEvent& event) {
- // TODO(jdduke): Use WebTouchEventTraits.
DCHECK(event.touchesLength);
switch (event.type) {
case WebInputEvent::TouchStart:
- if (AllTouchPointsHaveState(event, WebTouchPoint::StatePressed))
+ if (WebTouchEventTraits::AllTouchPointsHaveState(
+ event, WebTouchPoint::StatePressed))
return ui::MotionEvent::ACTION_DOWN;
else
return ui::MotionEvent::ACTION_POINTER_DOWN;
case WebInputEvent::TouchEnd:
- if (AllTouchPointsHaveState(event, WebTouchPoint::StateReleased))
+ if (WebTouchEventTraits::AllTouchPointsHaveState(
+ event, WebTouchPoint::StateReleased))
return ui::MotionEvent::ACTION_UP;
else
return ui::MotionEvent::ACTION_POINTER_UP;
case WebInputEvent::TouchCancel:
- DCHECK(AllTouchPointsHaveState(event, WebTouchPoint::StateCancelled));
+ DCHECK(WebTouchEventTraits::AllTouchPointsHaveState(
+ event, WebTouchPoint::StateCancelled));
return ui::MotionEvent::ACTION_CANCEL;
case WebInputEvent::TouchMove:
return ui::MotionEvent::ACTION_MOVE;
@@ -145,11 +139,11 @@ scoped_ptr<ui::MotionEvent> MotionEventWeb::Clone() const {
scoped_ptr<ui::MotionEvent> MotionEventWeb::Cancel() const {
WebTouchEvent cancel_event(event_);
-
- cancel_event.type = WebInputEvent::TouchCancel;
- for (size_t i = 0; i < cancel_event.touchesLength; ++i)
- cancel_event.touches[i].state = WebTouchPoint::StateCancelled;
-
+ WebTouchEventTraits::ResetTypeAndTouchStates(
+ blink::WebInputEvent::TouchCancel,
+ // TODO(rbyers): Shouldn't we use a fresh timestamp?
+ event_.timeStampSeconds,
+ &cancel_event);
return scoped_ptr<MotionEvent>(new MotionEventWeb(cancel_event));
}
« no previous file with comments | « content/browser/renderer_host/input/input_router_impl.cc ('k') | content/browser/renderer_host/input/touch_emulator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698