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

Side by Side Diff: content/common/input/web_touch_event_traits.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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « content/common/input/web_touch_event_traits.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "content/common/input/web_touch_event_traits.h"
6
7 #include "base/logging.h"
8
9 using blink::WebInputEvent;
10 using blink::WebTouchEvent;
11 using blink::WebTouchPoint;
12
13 namespace content {
14
15 bool WebTouchEventTraits::AllTouchPointsHaveState(
16 const WebTouchEvent& event,
17 blink::WebTouchPoint::State state) {
18 if (!event.touchesLength)
19 return false;
20 for (size_t i = 0; i < event.touchesLength; ++i) {
21 if (event.touches[i].state != state)
22 return false;
23 }
24 return true;
25 }
26
27 bool WebTouchEventTraits::IsTouchSequenceStart(const WebTouchEvent& event) {
28 DCHECK(event.touchesLength);
29 if (event.type != WebInputEvent::TouchStart)
30 return false;
31 return AllTouchPointsHaveState(event, blink::WebTouchPoint::StatePressed);
32 }
33
34 void WebTouchEventTraits::ResetType(WebInputEvent::Type type,
35 double timestamp_sec,
36 WebTouchEvent* event) {
37 DCHECK(WebInputEvent::isTouchEventType(type));
38 event->type = type;
39 event->cancelable = (type != WebInputEvent::TouchCancel);
40 event->timeStampSeconds = timestamp_sec;
41 }
42
43 void WebTouchEventTraits::ResetTypeAndTouchStates(WebInputEvent::Type type,
44 double timestamp_sec,
45 WebTouchEvent* event) {
46 ResetType(type, timestamp_sec, event);
47
48 WebTouchPoint::State newState = WebTouchPoint::StateUndefined;
49 switch (event->type) {
50 case WebInputEvent::TouchStart:
51 newState = WebTouchPoint::StatePressed;
52 break;
53 case WebInputEvent::TouchMove:
54 newState = WebTouchPoint::StateMoved;
55 break;
56 case WebInputEvent::TouchEnd:
57 newState = WebTouchPoint::StateReleased;
58 break;
59 case WebInputEvent::TouchCancel:
60 newState = WebTouchPoint::StateCancelled;
61 break;
62 default:
63 NOTREACHED();
64 break;
65 }
66 for (size_t i = 0; i < event->touchesLength; ++i)
67 event->touches[i].state = newState;
68 }
69
70 } // namespace content
OLDNEW
« no previous file with comments | « content/common/input/web_touch_event_traits.h ('k') | content/content_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698