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

Side by Side Diff: content/common/input/web_touch_event_traits.cc

Issue 1800143002: Notify Blink about start of gesture scroll through a queued event. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 4 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/input/web_touch_event_traits.h" 5 #include "content/common/input/web_touch_event_traits.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 10
11 using blink::WebInputEvent; 11 using blink::WebInputEvent;
12 using blink::WebTouchEvent; 12 using blink::WebTouchEvent;
13 using blink::WebTouchPoint; 13 using blink::WebTouchPoint;
14 14
15 namespace content { 15 namespace content {
16 16
17 bool WebTouchEventTraits::AllTouchPointsHaveState( 17 bool WebTouchEventTraits::AllTouchPointsHaveState(
18 const WebTouchEvent& event, 18 const WebTouchEvent& event,
19 blink::WebTouchPoint::State state) { 19 blink::WebTouchPoint::State state) {
20 if (!event.touchesLength) 20 if (!event.touchesLength)
21 return false; 21 return false;
22 for (size_t i = 0; i < event.touchesLength; ++i) { 22 for (size_t i = 0; i < event.touchesLength; ++i) {
23 if (event.touches[i].state != state) 23 if (event.touches[i].state != state)
24 return false; 24 return false;
25 } 25 }
26 return true; 26 return true;
27 } 27 }
28 28
29 bool WebTouchEventTraits::IsTouchSequenceStart(const WebTouchEvent& event) { 29 bool WebTouchEventTraits::IsTouchSequenceStart(const WebTouchEvent& event) {
30 DCHECK(event.touchesLength); 30 DCHECK(event.touchesLength ||
31 event.type == WebInputEvent::TouchScrollStarted);
31 if (event.type != WebInputEvent::TouchStart) 32 if (event.type != WebInputEvent::TouchStart)
32 return false; 33 return false;
33 return AllTouchPointsHaveState(event, blink::WebTouchPoint::StatePressed); 34 return AllTouchPointsHaveState(event, blink::WebTouchPoint::StatePressed);
34 } 35 }
35 36
36 bool WebTouchEventTraits::IsTouchSequenceEnd(const WebTouchEvent& event) { 37 bool WebTouchEventTraits::IsTouchSequenceEnd(const WebTouchEvent& event) {
37 if (event.type != WebInputEvent::TouchEnd && 38 if (event.type != WebInputEvent::TouchEnd &&
38 event.type != WebInputEvent::TouchCancel) 39 event.type != WebInputEvent::TouchCancel)
39 return false; 40 return false;
40 if (!event.touchesLength) 41 if (!event.touchesLength)
41 return true; 42 return true;
42 for (size_t i = 0; i < event.touchesLength; ++i) { 43 for (size_t i = 0; i < event.touchesLength; ++i) {
43 if (event.touches[i].state != blink::WebTouchPoint::StateReleased && 44 if (event.touches[i].state != blink::WebTouchPoint::StateReleased &&
44 event.touches[i].state != blink::WebTouchPoint::StateCancelled) 45 event.touches[i].state != blink::WebTouchPoint::StateCancelled)
45 return false; 46 return false;
46 } 47 }
47 return true; 48 return true;
48 } 49 }
49 50
50 void WebTouchEventTraits::ResetType(WebInputEvent::Type type, 51 void WebTouchEventTraits::ResetType(WebInputEvent::Type type,
51 double timestamp_sec, 52 double timestamp_sec,
52 WebTouchEvent* event) { 53 WebTouchEvent* event) {
53 DCHECK(WebInputEvent::isTouchEventType(type)); 54 DCHECK(WebInputEvent::isTouchEventType(type));
55 DCHECK(type != WebInputEvent::TouchScrollStarted);
56
54 event->type = type; 57 event->type = type;
55 event->cancelable = (type != WebInputEvent::TouchCancel); 58 event->cancelable = (type != WebInputEvent::TouchCancel);
56 event->timeStampSeconds = timestamp_sec; 59 event->timeStampSeconds = timestamp_sec;
57 } 60 }
58 61
59 void WebTouchEventTraits::ResetTypeAndTouchStates(WebInputEvent::Type type, 62 void WebTouchEventTraits::ResetTypeAndTouchStates(WebInputEvent::Type type,
60 double timestamp_sec, 63 double timestamp_sec,
61 WebTouchEvent* event) { 64 WebTouchEvent* event) {
62 ResetType(type, timestamp_sec, event); 65 ResetType(type, timestamp_sec, event);
63 66
(...skipping 13 matching lines...) Expand all
77 break; 80 break;
78 default: 81 default:
79 NOTREACHED(); 82 NOTREACHED();
80 break; 83 break;
81 } 84 }
82 for (size_t i = 0; i < event->touchesLength; ++i) 85 for (size_t i = 0; i < event->touchesLength; ++i)
83 event->touches[i].state = newState; 86 event->touches[i].state = newState;
84 } 87 }
85 88
86 } // namespace content 89 } // namespace content
OLDNEW
« no previous file with comments | « content/common/input/web_input_event_traits.cc ('k') | content/renderer/input/render_widget_input_handler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698