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

Side by Side Diff: components/html_viewer/touch_handler.cc

Issue 1362793002: Construct and check for mojo::Event's LocationData as needed. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Also audit wheel_data and brush_data. Created 5 years, 3 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/html_viewer/touch_handler.h" 5 #include "components/html_viewer/touch_handler.h"
6 6
7 #include "third_party/WebKit/public/web/WebInputEvent.h" 7 #include "third_party/WebKit/public/web/WebInputEvent.h"
8 #include "third_party/WebKit/public/web/WebWidget.h" 8 #include "third_party/WebKit/public/web/WebWidget.h"
9 #include "ui/events/base_event_utils.h" 9 #include "ui/events/base_event_utils.h"
10 #include "ui/events/blink/blink_event_util.h" 10 #include "ui/events/blink/blink_event_util.h"
11 #include "ui/events/gesture_detection/gesture_provider_config_helper.h" 11 #include "ui/events/gesture_detection/gesture_provider_config_helper.h"
12 #include "ui/events/gesture_detection/motion_event_generic.h" 12 #include "ui/events/gesture_detection/motion_event_generic.h"
13 #include "ui/mojo/events/input_events.mojom.h" 13 #include "ui/mojo/events/input_events.mojom.h"
14 14
15 namespace html_viewer { 15 namespace html_viewer {
16 namespace { 16 namespace {
17 17
18 // TODO(rjkroege): Gesture recognition currently happens in the html_viewer. 18 // TODO(rjkroege): Gesture recognition currently happens in the html_viewer.
19 // In phase2, it will be relocated to MUS. Update this code at that time. 19 // In phase2, it will be relocated to MUS. Update this code at that time.
20 void SetPropertiesFromEvent(const mojo::Event& event, 20 void SetPropertiesFromEvent(const mojo::Event& event,
21 ui::PointerProperties* properties) { 21 ui::PointerProperties* properties) {
22 properties->id = event.pointer_data->pointer_id; 22 if (event.pointer_data) {
23 properties->x = event.pointer_data->location->x; 23 properties->id = event.pointer_data->pointer_id;
24 properties->y = event.pointer_data->location->y; 24 if (event.pointer_data->location) {
25 properties->raw_x = event.pointer_data->location->screen_x; 25 properties->x = event.pointer_data->location->x;
26 properties->raw_y = event.pointer_data->location->screen_y; 26 properties->y = event.pointer_data->location->y;
27 properties->raw_x = event.pointer_data->location->screen_x;
28 properties->raw_y = event.pointer_data->location->screen_y;
29 }
30 }
27 31
28 if (event.pointer_data->kind == mojo::POINTER_KIND_TOUCH || 32 if (event.pointer_data && event.pointer_data->brush_data &&
29 event.pointer_data->kind == mojo::POINTER_KIND_PEN) { 33 (event.pointer_data->kind == mojo::POINTER_KIND_TOUCH ||
34 event.pointer_data->kind == mojo::POINTER_KIND_PEN)) {
30 properties->pressure = event.pointer_data->brush_data->pressure; 35 properties->pressure = event.pointer_data->brush_data->pressure;
31 36
32 // TODO(rjkroege): vary orientation for width, height. 37 // TODO(rjkroege): vary orientation for width, height.
33 properties->SetAxesAndOrientation(event.pointer_data->brush_data->width, 38 properties->SetAxesAndOrientation(event.pointer_data->brush_data->width,
34 event.pointer_data->brush_data->height, 39 event.pointer_data->brush_data->height,
35 0.0); 40 0.0);
36 } else { 41 } else {
37 if (event.flags & mojo::EVENT_FLAGS_LEFT_MOUSE_BUTTON || 42 if (event.flags & mojo::EVENT_FLAGS_LEFT_MOUSE_BUTTON ||
38 event.flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON || 43 event.flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON ||
39 event.flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON) { 44 event.flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON) {
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 183
179 blink::WebTouchEvent web_event = ui::CreateWebTouchEventFromMotionEvent( 184 blink::WebTouchEvent web_event = ui::CreateWebTouchEventFromMotionEvent(
180 *current_motion_event_, result.did_generate_scroll); 185 *current_motion_event_, result.did_generate_scroll);
181 gesture_provider_.OnTouchEventAck(web_event.uniqueTouchEventId, 186 gesture_provider_.OnTouchEventAck(web_event.uniqueTouchEventId,
182 web_widget_->handleInputEvent(web_event)); 187 web_widget_->handleInputEvent(web_event));
183 } 188 }
184 189
185 void TouchHandler::PostProcessMotionEvent(const mojo::Event& event) { 190 void TouchHandler::PostProcessMotionEvent(const mojo::Event& event) {
186 switch (event.action) { 191 switch (event.action) {
187 case mojo::EVENT_TYPE_POINTER_UP: { 192 case mojo::EVENT_TYPE_POINTER_UP: {
188 const int index = current_motion_event_->FindPointerIndexOfId( 193 if (event.pointer_data) {
189 event.pointer_data->pointer_id); 194 const int index = current_motion_event_->FindPointerIndexOfId(
190 current_motion_event_->RemovePointerAt(index); 195 event.pointer_data->pointer_id);
196 current_motion_event_->RemovePointerAt(index);
197 }
191 if (current_motion_event_->GetPointerCount() == 0) 198 if (current_motion_event_->GetPointerCount() == 0)
192 current_motion_event_.reset(); 199 current_motion_event_.reset();
193 break; 200 break;
194 } 201 }
195 202
196 case mojo::EVENT_TYPE_POINTER_CANCEL: 203 case mojo::EVENT_TYPE_POINTER_CANCEL:
197 current_motion_event_.reset(); 204 current_motion_event_.reset();
198 break; 205 break;
199 206
200 default: 207 default:
201 break; 208 break;
202 } 209 }
203 } 210 }
204 211
205 } // namespace html_viewer 212 } // namespace html_viewer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698