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

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

Issue 1344223002: Revert of Overhaul Mandoline event transport code (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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
« no previous file with comments | « components/html_viewer/DEPS ('k') | components/html_viewer/html_frame.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "components/html_viewer/blink_input_events_type_converters.h" 5 #include "components/html_viewer/blink_input_events_type_converters.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/time/time.h" 8 #include "base/time/time.h"
9 #include "third_party/WebKit/public/web/WebInputEvent.h" 9 #include "third_party/WebKit/public/web/WebInputEvent.h"
10 #include "ui/mojo/events/input_event_constants.mojom.h" 10 #include "ui/mojo/events/input_event_constants.mojom.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 int GetClickCount(int flags) { 55 int GetClickCount(int flags) {
56 if (flags & mojo::MOUSE_EVENT_FLAGS_IS_TRIPLE_CLICK) 56 if (flags & mojo::MOUSE_EVENT_FLAGS_IS_TRIPLE_CLICK)
57 return 3; 57 return 3;
58 else if (flags & mojo::MOUSE_EVENT_FLAGS_IS_DOUBLE_CLICK) 58 else if (flags & mojo::MOUSE_EVENT_FLAGS_IS_DOUBLE_CLICK)
59 return 2; 59 return 2;
60 60
61 return 1; 61 return 1;
62 } 62 }
63 63
64 void SetWebMouseEventLocation(const mojo::LocationData& location_data, 64 void SetWebMouseEventLocation(const mojo::PointerData& pointer_data,
65 blink::WebMouseEvent* web_event) { 65 blink::WebMouseEvent* web_event) {
66 web_event->x = static_cast<int>(location_data.x); 66 web_event->x = static_cast<int>(pointer_data.x);
67 web_event->y = static_cast<int>(location_data.y); 67 web_event->y = static_cast<int>(pointer_data.y);
68 web_event->globalX = static_cast<int>(location_data.screen_x); 68 web_event->globalX = static_cast<int>(pointer_data.screen_x);
69 web_event->globalY = static_cast<int>(location_data.screen_y); 69 web_event->globalY = static_cast<int>(pointer_data.screen_y);
70 } 70 }
71 71
72 scoped_ptr<blink::WebInputEvent> BuildWebMouseEventFrom(const EventPtr& event) { 72 scoped_ptr<blink::WebInputEvent> BuildWebMouseEventFrom(const EventPtr& event) {
73 scoped_ptr<blink::WebMouseEvent> web_event(new blink::WebMouseEvent); 73 scoped_ptr<blink::WebMouseEvent> web_event(new blink::WebMouseEvent);
74 74
75 SetWebMouseEventLocation(*(event->pointer_data->location), web_event.get()); 75 SetWebMouseEventLocation(*(event->pointer_data), web_event.get());
76 76
77 web_event->modifiers = EventFlagsToWebEventModifiers(event->flags); 77 web_event->modifiers = EventFlagsToWebEventModifiers(event->flags);
78 web_event->timeStampSeconds = EventTimeToWebEventTime(event); 78 web_event->timeStampSeconds = EventTimeToWebEventTime(event);
79 79
80 web_event->button = blink::WebMouseEvent::ButtonNone; 80 web_event->button = blink::WebMouseEvent::ButtonNone;
81 if (event->flags & mojo::EVENT_FLAGS_LEFT_MOUSE_BUTTON) 81 if (event->flags & mojo::EVENT_FLAGS_LEFT_MOUSE_BUTTON)
82 web_event->button = blink::WebMouseEvent::ButtonLeft; 82 web_event->button = blink::WebMouseEvent::ButtonLeft;
83 if (event->flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON) 83 if (event->flags & mojo::EVENT_FLAGS_MIDDLE_MOUSE_BUTTON)
84 web_event->button = blink::WebMouseEvent::ButtonMiddle; 84 web_event->button = blink::WebMouseEvent::ButtonMiddle;
85 if (event->flags & mojo::EVENT_FLAGS_RIGHT_MOUSE_BUTTON) 85 if (event->flags & mojo::EVENT_FLAGS_RIGHT_MOUSE_BUTTON)
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 138
139 scoped_ptr<blink::WebInputEvent> BuildWebMouseWheelEventFrom( 139 scoped_ptr<blink::WebInputEvent> BuildWebMouseWheelEventFrom(
140 const EventPtr& event) { 140 const EventPtr& event) {
141 scoped_ptr<blink::WebMouseWheelEvent> web_event( 141 scoped_ptr<blink::WebMouseWheelEvent> web_event(
142 new blink::WebMouseWheelEvent); 142 new blink::WebMouseWheelEvent);
143 web_event->type = blink::WebInputEvent::MouseWheel; 143 web_event->type = blink::WebInputEvent::MouseWheel;
144 web_event->button = blink::WebMouseEvent::ButtonNone; 144 web_event->button = blink::WebMouseEvent::ButtonNone;
145 web_event->modifiers = EventFlagsToWebEventModifiers(event->flags); 145 web_event->modifiers = EventFlagsToWebEventModifiers(event->flags);
146 web_event->timeStampSeconds = EventTimeToWebEventTime(event); 146 web_event->timeStampSeconds = EventTimeToWebEventTime(event);
147 147
148 SetWebMouseEventLocation(*(event->wheel_data->location), web_event.get()); 148 SetWebMouseEventLocation(*(event->pointer_data), web_event.get());
149 149
150 // TODO(rjkroege): Update the following code once Blink supports 150 if ((event->flags & mojo::EVENT_FLAGS_SHIFT_DOWN) != 0 &&
151 // DOM Level 3 wheel events 151 event->pointer_data->horizontal_wheel == 0) {
152 // (http://www.w3.org/TR/DOM-Level-3-Events/#events-wheelevents) 152 web_event->deltaX = event->pointer_data->horizontal_wheel;
153 web_event->deltaX = event->wheel_data->delta_x; 153 web_event->deltaY = 0;
154 web_event->deltaY = event->wheel_data->delta_y; 154 } else {
155 web_event->deltaX = event->pointer_data->horizontal_wheel;
156 web_event->deltaY = event->pointer_data->vertical_wheel;
157 }
155 158
159 // TODO(sky): resole this, doesn't work for desktop.
156 web_event->wheelTicksX = web_event->deltaX / kPixelsPerTick; 160 web_event->wheelTicksX = web_event->deltaX / kPixelsPerTick;
157 web_event->wheelTicksY = web_event->deltaY / kPixelsPerTick; 161 web_event->wheelTicksY = web_event->deltaY / kPixelsPerTick;
158 162
159 // TODO(rjkroege): Mandoline currently only generates WHEEL_MODE_LINE
160 // wheel events so the other modes are not yet tested. Verify that
161 // the implementation is correct.
162 switch (event->wheel_data->mode) {
163 case mojo::WHEEL_MODE_PIXEL:
164 web_event->hasPreciseScrollingDeltas = true;
165 web_event->scrollByPage = false;
166 web_event->canScroll = true;
167 break;
168 case mojo::WHEEL_MODE_LINE:
169 web_event->hasPreciseScrollingDeltas = false;
170 web_event->scrollByPage = false;
171 web_event->canScroll = true;
172 break;
173 case mojo::WHEEL_MODE_PAGE:
174 web_event->hasPreciseScrollingDeltas = false;
175 web_event->scrollByPage = true;
176 web_event->canScroll = true;
177 break;
178 case mojo::WHEEL_MODE_SCALING:
179 web_event->hasPreciseScrollingDeltas = false;
180 web_event->scrollByPage = false;
181 web_event->canScroll = false;
182 break;
183 }
184
185 return web_event.Pass(); 163 return web_event.Pass();
186 } 164 }
187 165
188 } // namespace 166 } // namespace
189 167
190 // static 168 // static
191 scoped_ptr<blink::WebInputEvent> 169 scoped_ptr<blink::WebInputEvent>
192 TypeConverter<scoped_ptr<blink::WebInputEvent>, EventPtr>::Convert( 170 TypeConverter<scoped_ptr<blink::WebInputEvent>, EventPtr>::Convert(
193 const EventPtr& event) { 171 const EventPtr& event) {
194 switch (event->action) { 172 if (event->action == mojo::EVENT_TYPE_POINTER_DOWN ||
195 case mojo::EVENT_TYPE_POINTER_DOWN: 173 event->action == mojo::EVENT_TYPE_POINTER_UP ||
196 case mojo::EVENT_TYPE_POINTER_UP: 174 event->action == mojo::EVENT_TYPE_POINTER_CANCEL ||
197 case mojo::EVENT_TYPE_POINTER_CANCEL: 175 event->action == mojo::EVENT_TYPE_POINTER_MOVE) {
198 case mojo::EVENT_TYPE_POINTER_MOVE: 176 if (event->pointer_data->horizontal_wheel != 0 ||
199 if (event->pointer_data->kind == mojo::POINTER_KIND_MOUSE) 177 event->pointer_data->vertical_wheel != 0) {
200 return BuildWebMouseEventFrom(event);
201 case mojo::EVENT_TYPE_WHEEL:
202 return BuildWebMouseWheelEventFrom(event); 178 return BuildWebMouseWheelEventFrom(event);
203 case mojo::EVENT_TYPE_KEY_PRESSED: 179 }
204 case mojo::EVENT_TYPE_KEY_RELEASED: 180 if (event->pointer_data->kind == mojo::POINTER_KIND_MOUSE)
205 return BuildWebKeyboardEvent(event); 181 return BuildWebMouseEventFrom(event);
206 case mojo::EVENT_TYPE_UNKNOWN: 182 } else if ((event->action == mojo::EVENT_TYPE_KEY_PRESSED ||
207 return nullptr; 183 event->action == mojo::EVENT_TYPE_KEY_RELEASED) &&
184 event->key_data) {
185 return BuildWebKeyboardEvent(event);
208 } 186 }
209 return nullptr; 187 return nullptr;
210 } 188 }
211 189
212 } // namespace mojo 190 } // namespace mojo
OLDNEW
« no previous file with comments | « components/html_viewer/DEPS ('k') | components/html_viewer/html_frame.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698