| OLD | NEW |
| 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 "components/mus/public/interfaces/input_events.mojom.h" | 7 #include "components/mus/public/interfaces/input_events.mojom.h" |
| 8 #include "third_party/WebKit/public/web/WebInputEvent.h" | 8 #include "third_party/WebKit/public/web/WebInputEvent.h" |
| 9 #include "third_party/WebKit/public/web/WebWidget.h" | 9 #include "third_party/WebKit/public/web/WebWidget.h" |
| 10 #include "ui/events/base_event_utils.h" | 10 #include "ui/events/base_event_utils.h" |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 properties->id = event.pointer_data->pointer_id; | 23 properties->id = event.pointer_data->pointer_id; |
| 24 if (event.pointer_data->location) { | 24 if (event.pointer_data->location) { |
| 25 properties->x = event.pointer_data->location->x; | 25 properties->x = event.pointer_data->location->x; |
| 26 properties->y = event.pointer_data->location->y; | 26 properties->y = event.pointer_data->location->y; |
| 27 properties->raw_x = event.pointer_data->location->screen_x; | 27 properties->raw_x = event.pointer_data->location->screen_x; |
| 28 properties->raw_y = event.pointer_data->location->screen_y; | 28 properties->raw_y = event.pointer_data->location->screen_y; |
| 29 } | 29 } |
| 30 } | 30 } |
| 31 | 31 |
| 32 if (event.pointer_data && event.pointer_data->brush_data && | 32 if (event.pointer_data && event.pointer_data->brush_data && |
| 33 (event.pointer_data->kind == mus::mojom::POINTER_KIND_TOUCH || | 33 (event.pointer_data->kind == mus::mojom::PointerKind::TOUCH || |
| 34 event.pointer_data->kind == mus::mojom::POINTER_KIND_PEN)) { | 34 event.pointer_data->kind == mus::mojom::PointerKind::PEN)) { |
| 35 properties->pressure = event.pointer_data->brush_data->pressure; | 35 properties->pressure = event.pointer_data->brush_data->pressure; |
| 36 | 36 |
| 37 // TODO(rjkroege): vary orientation for width, height. | 37 // TODO(rjkroege): vary orientation for width, height. |
| 38 properties->SetAxesAndOrientation(event.pointer_data->brush_data->width, | 38 properties->SetAxesAndOrientation(event.pointer_data->brush_data->width, |
| 39 event.pointer_data->brush_data->height, | 39 event.pointer_data->brush_data->height, |
| 40 0.0); | 40 0.0); |
| 41 } else { | 41 } else { |
| 42 if (event.flags & mus::mojom::EVENT_FLAGS_LEFT_MOUSE_BUTTON || | 42 if (event.flags & mus::mojom::kEventFlagLeftMouseButton || |
| 43 event.flags & mus::mojom::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON || | 43 event.flags & mus::mojom::kEventFlagMiddleMouseButton || |
| 44 event.flags & mus::mojom::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON) { | 44 event.flags & mus::mojom::kEventFlagMiddleMouseButton) { |
| 45 properties->pressure = 0.5; | 45 properties->pressure = 0.5; |
| 46 } else { | 46 } else { |
| 47 properties->pressure = 0.0; | 47 properties->pressure = 0.0; |
| 48 } | 48 } |
| 49 } | 49 } |
| 50 // TODO(sky): Add support for tool_type. | 50 // TODO(sky): Add support for tool_type. |
| 51 } | 51 } |
| 52 | 52 |
| 53 } // namespace | 53 } // namespace |
| 54 | 54 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 90 SetPropertiesFromEvent(event, &properties); | 90 SetPropertiesFromEvent(event, &properties); |
| 91 | 91 |
| 92 const base::TimeTicks timestamp( | 92 const base::TimeTicks timestamp( |
| 93 base::TimeTicks::FromInternalValue(event.time_stamp)); | 93 base::TimeTicks::FromInternalValue(event.time_stamp)); |
| 94 if (current_motion_event_.get()) { | 94 if (current_motion_event_.get()) { |
| 95 current_motion_event_->set_unique_event_id(ui::GetNextTouchEventId()); | 95 current_motion_event_->set_unique_event_id(ui::GetNextTouchEventId()); |
| 96 current_motion_event_->set_event_time(timestamp); | 96 current_motion_event_->set_event_time(timestamp); |
| 97 } | 97 } |
| 98 | 98 |
| 99 switch (event.action) { | 99 switch (event.action) { |
| 100 case mus::mojom::EVENT_TYPE_POINTER_DOWN: | 100 case mus::mojom::EventType::POINTER_DOWN: |
| 101 if (!current_motion_event_.get()) { | 101 if (!current_motion_event_.get()) { |
| 102 current_motion_event_.reset(new ui::MotionEventGeneric( | 102 current_motion_event_.reset(new ui::MotionEventGeneric( |
| 103 ui::MotionEvent::ACTION_DOWN, timestamp, properties)); | 103 ui::MotionEvent::ACTION_DOWN, timestamp, properties)); |
| 104 } else { | 104 } else { |
| 105 const int index = | 105 const int index = |
| 106 current_motion_event_->FindPointerIndexOfId(properties.id); | 106 current_motion_event_->FindPointerIndexOfId(properties.id); |
| 107 if (index != -1) { | 107 if (index != -1) { |
| 108 DVLOG(1) << "pointer down and pointer already down id=" | 108 DVLOG(1) << "pointer down and pointer already down id=" |
| 109 << properties.id; | 109 << properties.id; |
| 110 return false; | 110 return false; |
| 111 } | 111 } |
| 112 current_motion_event_->PushPointer(properties); | 112 current_motion_event_->PushPointer(properties); |
| 113 current_motion_event_->set_action(ui::MotionEvent::ACTION_POINTER_DOWN); | 113 current_motion_event_->set_action(ui::MotionEvent::ACTION_POINTER_DOWN); |
| 114 current_motion_event_->set_action_index(static_cast<int>(index)); | 114 current_motion_event_->set_action_index(static_cast<int>(index)); |
| 115 } | 115 } |
| 116 return true; | 116 return true; |
| 117 | 117 |
| 118 case mus::mojom::EVENT_TYPE_POINTER_UP: { | 118 case mus::mojom::EventType::POINTER_UP: { |
| 119 if (!current_motion_event_.get()) { | 119 if (!current_motion_event_.get()) { |
| 120 DVLOG(1) << "pointer up with no event, id=" << properties.id; | 120 DVLOG(1) << "pointer up with no event, id=" << properties.id; |
| 121 return false; | 121 return false; |
| 122 } | 122 } |
| 123 const int index = | 123 const int index = |
| 124 current_motion_event_->FindPointerIndexOfId(properties.id); | 124 current_motion_event_->FindPointerIndexOfId(properties.id); |
| 125 if (index == -1) { | 125 if (index == -1) { |
| 126 DVLOG(1) << "pointer up and pointer not down id=" << properties.id; | 126 DVLOG(1) << "pointer up and pointer not down id=" << properties.id; |
| 127 return false; | 127 return false; |
| 128 } | 128 } |
| 129 current_motion_event_->pointer(index) = properties; | 129 current_motion_event_->pointer(index) = properties; |
| 130 current_motion_event_->set_action( | 130 current_motion_event_->set_action( |
| 131 current_motion_event_->GetPointerCount() == 1 | 131 current_motion_event_->GetPointerCount() == 1 |
| 132 ? ui::MotionEvent::ACTION_UP | 132 ? ui::MotionEvent::ACTION_UP |
| 133 : ui::MotionEvent::ACTION_POINTER_UP); | 133 : ui::MotionEvent::ACTION_POINTER_UP); |
| 134 current_motion_event_->set_action_index(static_cast<int>(index)); | 134 current_motion_event_->set_action_index(static_cast<int>(index)); |
| 135 return true; | 135 return true; |
| 136 } | 136 } |
| 137 | 137 |
| 138 case mus::mojom::EVENT_TYPE_POINTER_MOVE: { | 138 case mus::mojom::EventType::POINTER_MOVE: { |
| 139 if (!current_motion_event_.get()) { | 139 if (!current_motion_event_.get()) { |
| 140 DVLOG(1) << "pointer move with no event, id=" << properties.id; | 140 DVLOG(1) << "pointer move with no event, id=" << properties.id; |
| 141 return false; | 141 return false; |
| 142 } | 142 } |
| 143 const int index = | 143 const int index = |
| 144 current_motion_event_->FindPointerIndexOfId(properties.id); | 144 current_motion_event_->FindPointerIndexOfId(properties.id); |
| 145 if (index == -1) { | 145 if (index == -1) { |
| 146 DVLOG(1) << "pointer move and pointer not down id=" << properties.id; | 146 DVLOG(1) << "pointer move and pointer not down id=" << properties.id; |
| 147 return false; | 147 return false; |
| 148 } | 148 } |
| 149 current_motion_event_->pointer(index) = properties; | 149 current_motion_event_->pointer(index) = properties; |
| 150 current_motion_event_->set_action(ui::MotionEvent::ACTION_MOVE); | 150 current_motion_event_->set_action(ui::MotionEvent::ACTION_MOVE); |
| 151 current_motion_event_->set_action_index(static_cast<int>(index)); | 151 current_motion_event_->set_action_index(static_cast<int>(index)); |
| 152 return true; | 152 return true; |
| 153 } | 153 } |
| 154 | 154 |
| 155 case mus::mojom::EVENT_TYPE_POINTER_CANCEL: { | 155 case mus::mojom::EventType::POINTER_CANCEL: { |
| 156 if (!current_motion_event_.get()) { | 156 if (!current_motion_event_.get()) { |
| 157 DVLOG(1) << "canel with no event, id=" << properties.id; | 157 DVLOG(1) << "canel with no event, id=" << properties.id; |
| 158 return false; | 158 return false; |
| 159 } | 159 } |
| 160 const int index = | 160 const int index = |
| 161 current_motion_event_->FindPointerIndexOfId(properties.id); | 161 current_motion_event_->FindPointerIndexOfId(properties.id); |
| 162 if (index == -1) { | 162 if (index == -1) { |
| 163 DVLOG(1) << "cancel and pointer not down id=" << properties.id; | 163 DVLOG(1) << "cancel and pointer not down id=" << properties.id; |
| 164 return false; | 164 return false; |
| 165 } | 165 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 183 | 183 |
| 184 blink::WebTouchEvent web_event = ui::CreateWebTouchEventFromMotionEvent( | 184 blink::WebTouchEvent web_event = ui::CreateWebTouchEventFromMotionEvent( |
| 185 *current_motion_event_, result.did_generate_scroll); | 185 *current_motion_event_, result.did_generate_scroll); |
| 186 gesture_provider_.OnTouchEventAck(web_event.uniqueTouchEventId, | 186 gesture_provider_.OnTouchEventAck(web_event.uniqueTouchEventId, |
| 187 web_widget_->handleInputEvent(web_event) != | 187 web_widget_->handleInputEvent(web_event) != |
| 188 blink::WebInputEventResult::NotHandled); | 188 blink::WebInputEventResult::NotHandled); |
| 189 } | 189 } |
| 190 | 190 |
| 191 void TouchHandler::PostProcessMotionEvent(const mus::mojom::Event& event) { | 191 void TouchHandler::PostProcessMotionEvent(const mus::mojom::Event& event) { |
| 192 switch (event.action) { | 192 switch (event.action) { |
| 193 case mus::mojom::EVENT_TYPE_POINTER_UP: { | 193 case mus::mojom::EventType::POINTER_UP: { |
| 194 if (event.pointer_data) { | 194 if (event.pointer_data) { |
| 195 const int index = current_motion_event_->FindPointerIndexOfId( | 195 const int index = current_motion_event_->FindPointerIndexOfId( |
| 196 event.pointer_data->pointer_id); | 196 event.pointer_data->pointer_id); |
| 197 current_motion_event_->RemovePointerAt(index); | 197 current_motion_event_->RemovePointerAt(index); |
| 198 } | 198 } |
| 199 if (current_motion_event_->GetPointerCount() == 0) | 199 if (current_motion_event_->GetPointerCount() == 0) |
| 200 current_motion_event_.reset(); | 200 current_motion_event_.reset(); |
| 201 break; | 201 break; |
| 202 } | 202 } |
| 203 | 203 |
| 204 case mus::mojom::EVENT_TYPE_POINTER_CANCEL: | 204 case mus::mojom::EventType::POINTER_CANCEL: |
| 205 current_motion_event_.reset(); | 205 current_motion_event_.reset(); |
| 206 break; | 206 break; |
| 207 | 207 |
| 208 default: | 208 default: |
| 209 break; | 209 break; |
| 210 } | 210 } |
| 211 } | 211 } |
| 212 | 212 |
| 213 } // namespace html_viewer | 213 } // namespace html_viewer |
| OLD | NEW |