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

Side by Side Diff: ui/events/blink/blink_event_util.cc

Issue 1034713004: Refactors gesture conversion functions to ui/events/blink (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix M_PI usage for windows Created 5 years, 9 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 2013 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 // MSVC++ requires this to be set before any other includes to get M_PI. 5 // MSVC++ requires this to be set before any other includes to get M_PI.
6 #define _USE_MATH_DEFINES 6 #define _USE_MATH_DEFINES
7 7
8 #include "content/browser/renderer_host/input/web_input_event_util.h" 8 #include "ui/events/blink/blink_event_util.h"
9 9
10 #include <cmath> 10 #include <cmath>
11 11
12 #include "base/strings/string_util.h" 12 #include "base/time/time.h"
13 #include "content/common/input/web_touch_event_traits.h" 13 #include "third_party/WebKit/public/web/WebInputEvent.h"
14 #include "ui/events/event_constants.h" 14 #include "ui/events/event_constants.h"
15 #include "ui/events/gesture_detection/gesture_event_data.h" 15 #include "ui/events/gesture_detection/gesture_event_data.h"
16 #include "ui/events/gesture_detection/motion_event.h" 16 #include "ui/events/gesture_detection/motion_event.h"
17 #include "ui/events/gesture_event_details.h"
17 #include "ui/gfx/geometry/safe_integer_conversions.h" 18 #include "ui/gfx/geometry/safe_integer_conversions.h"
18 19
19 using blink::WebGestureEvent; 20 using blink::WebGestureEvent;
20 using blink::WebInputEvent; 21 using blink::WebInputEvent;
21 using blink::WebTouchEvent; 22 using blink::WebTouchEvent;
22 using blink::WebTouchPoint; 23 using blink::WebTouchPoint;
23 using ui::MotionEvent;
24 24
25 namespace ui {
25 namespace { 26 namespace {
26 27
27 const char* GetKeyIdentifier(ui::KeyboardCode key_code) {
28 switch (key_code) {
29 case ui::VKEY_MENU:
30 return "Alt";
31 case ui::VKEY_CONTROL:
32 return "Control";
33 case ui::VKEY_SHIFT:
34 return "Shift";
35 case ui::VKEY_CAPITAL:
36 return "CapsLock";
37 case ui::VKEY_LWIN:
38 case ui::VKEY_RWIN:
39 return "Win";
40 case ui::VKEY_CLEAR:
41 return "Clear";
42 case ui::VKEY_DOWN:
43 return "Down";
44 case ui::VKEY_END:
45 return "End";
46 case ui::VKEY_RETURN:
47 return "Enter";
48 case ui::VKEY_EXECUTE:
49 return "Execute";
50 case ui::VKEY_F1:
51 return "F1";
52 case ui::VKEY_F2:
53 return "F2";
54 case ui::VKEY_F3:
55 return "F3";
56 case ui::VKEY_F4:
57 return "F4";
58 case ui::VKEY_F5:
59 return "F5";
60 case ui::VKEY_F6:
61 return "F6";
62 case ui::VKEY_F7:
63 return "F7";
64 case ui::VKEY_F8:
65 return "F8";
66 case ui::VKEY_F9:
67 return "F9";
68 case ui::VKEY_F10:
69 return "F10";
70 case ui::VKEY_F11:
71 return "F11";
72 case ui::VKEY_F12:
73 return "F12";
74 case ui::VKEY_F13:
75 return "F13";
76 case ui::VKEY_F14:
77 return "F14";
78 case ui::VKEY_F15:
79 return "F15";
80 case ui::VKEY_F16:
81 return "F16";
82 case ui::VKEY_F17:
83 return "F17";
84 case ui::VKEY_F18:
85 return "F18";
86 case ui::VKEY_F19:
87 return "F19";
88 case ui::VKEY_F20:
89 return "F20";
90 case ui::VKEY_F21:
91 return "F21";
92 case ui::VKEY_F22:
93 return "F22";
94 case ui::VKEY_F23:
95 return "F23";
96 case ui::VKEY_F24:
97 return "F24";
98 case ui::VKEY_HELP:
99 return "Help";
100 case ui::VKEY_HOME:
101 return "Home";
102 case ui::VKEY_INSERT:
103 return "Insert";
104 case ui::VKEY_LEFT:
105 return "Left";
106 case ui::VKEY_NEXT:
107 return "PageDown";
108 case ui::VKEY_PRIOR:
109 return "PageUp";
110 case ui::VKEY_PAUSE:
111 return "Pause";
112 case ui::VKEY_SNAPSHOT:
113 return "PrintScreen";
114 case ui::VKEY_RIGHT:
115 return "Right";
116 case ui::VKEY_SCROLL:
117 return "Scroll";
118 case ui::VKEY_SELECT:
119 return "Select";
120 case ui::VKEY_UP:
121 return "Up";
122 case ui::VKEY_DELETE:
123 return "U+007F"; // Standard says that DEL becomes U+007F.
124 case ui::VKEY_MEDIA_NEXT_TRACK:
125 return "MediaNextTrack";
126 case ui::VKEY_MEDIA_PREV_TRACK:
127 return "MediaPreviousTrack";
128 case ui::VKEY_MEDIA_STOP:
129 return "MediaStop";
130 case ui::VKEY_MEDIA_PLAY_PAUSE:
131 return "MediaPlayPause";
132 case ui::VKEY_VOLUME_MUTE:
133 return "VolumeMute";
134 case ui::VKEY_VOLUME_DOWN:
135 return "VolumeDown";
136 case ui::VKEY_VOLUME_UP:
137 return "VolumeUp";
138 default:
139 return NULL;
140 };
141 }
142
143 WebInputEvent::Type ToWebInputEventType(MotionEvent::Action action) { 28 WebInputEvent::Type ToWebInputEventType(MotionEvent::Action action) {
144 switch (action) { 29 switch (action) {
145 case MotionEvent::ACTION_DOWN: 30 case MotionEvent::ACTION_DOWN:
146 return WebInputEvent::TouchStart; 31 return WebInputEvent::TouchStart;
147 case MotionEvent::ACTION_MOVE: 32 case MotionEvent::ACTION_MOVE:
148 return WebInputEvent::TouchMove; 33 return WebInputEvent::TouchMove;
149 case MotionEvent::ACTION_UP: 34 case MotionEvent::ACTION_UP:
150 return WebInputEvent::TouchEnd; 35 return WebInputEvent::TouchEnd;
151 case MotionEvent::ACTION_CANCEL: 36 case MotionEvent::ACTION_CANCEL:
152 return WebInputEvent::TouchCancel; 37 return WebInputEvent::TouchCancel;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 touch.rotationAngle = orientation_deg + 90; 120 touch.rotationAngle = orientation_deg + 90;
236 } 121 }
237 122
238 touch.force = event.GetPressure(pointer_index); 123 touch.force = event.GetPressure(pointer_index);
239 124
240 return touch; 125 return touch;
241 } 126 }
242 127
243 } // namespace 128 } // namespace
244 129
245 namespace content {
246
247 void UpdateWindowsKeyCodeAndKeyIdentifier(blink::WebKeyboardEvent* event,
248 ui::KeyboardCode windows_key_code) {
249 event->windowsKeyCode = windows_key_code;
250
251 const char* id = GetKeyIdentifier(windows_key_code);
252 if (id) {
253 base::strlcpy(event->keyIdentifier, id, sizeof(event->keyIdentifier) - 1);
254 } else {
255 base::snprintf(event->keyIdentifier,
256 sizeof(event->keyIdentifier),
257 "U+%04X",
258 base::ToUpperASCII(static_cast<int>(windows_key_code)));
259 }
260 }
261
262 blink::WebTouchEvent CreateWebTouchEventFromMotionEvent( 130 blink::WebTouchEvent CreateWebTouchEventFromMotionEvent(
263 const ui::MotionEvent& event, 131 const MotionEvent& event,
264 bool may_cause_scrolling) { 132 bool may_cause_scrolling) {
265 static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) == 133 static_assert(static_cast<int>(MotionEvent::MAX_TOUCH_POINT_COUNT) ==
266 static_cast<int>(blink::WebTouchEvent::touchesLengthCap), 134 static_cast<int>(blink::WebTouchEvent::touchesLengthCap),
267 "inconsistent maximum number of active touch points"); 135 "inconsistent maximum number of active touch points");
268 136
269 blink::WebTouchEvent result; 137 blink::WebTouchEvent result;
270 138
271 WebTouchEventTraits::ResetType( 139 result.type = ToWebInputEventType(event.GetAction());
272 ToWebInputEventType(event.GetAction()), 140 result.cancelable = (result.type != WebInputEvent::TouchCancel);
141 result.timeStampSeconds =
273 (event.GetEventTime() - base::TimeTicks()).InSecondsF(), 142 (event.GetEventTime() - base::TimeTicks()).InSecondsF(),
274 &result);
275 result.causesScrollingIfUncanceled = may_cause_scrolling; 143 result.causesScrollingIfUncanceled = may_cause_scrolling;
276
277 result.modifiers = EventFlagsToWebEventModifiers(event.GetFlags()); 144 result.modifiers = EventFlagsToWebEventModifiers(event.GetFlags());
278 result.touchesLength = 145 result.touchesLength =
279 std::min(event.GetPointerCount(), 146 std::min(event.GetPointerCount(),
280 static_cast<size_t>(WebTouchEvent::touchesLengthCap)); 147 static_cast<size_t>(WebTouchEvent::touchesLengthCap));
281 DCHECK_GT(result.touchesLength, 0U); 148 DCHECK_GT(result.touchesLength, 0U);
282 149
283 for (size_t i = 0; i < result.touchesLength; ++i) 150 for (size_t i = 0; i < result.touchesLength; ++i)
284 result.touches[i] = CreateWebTouchPoint(event, i); 151 result.touches[i] = CreateWebTouchPoint(event, i);
285 152
286 return result; 153 return result;
287 } 154 }
288 155
289 WebGestureEvent CreateWebGestureEvent(const ui::GestureEventDetails& details, 156 int EventFlagsToWebEventModifiers(int flags) {
157 int modifiers = 0;
158
159 if (flags & EF_SHIFT_DOWN)
160 modifiers |= blink::WebInputEvent::ShiftKey;
161 if (flags & EF_CONTROL_DOWN)
162 modifiers |= blink::WebInputEvent::ControlKey;
163 if (flags & EF_ALT_DOWN)
164 modifiers |= blink::WebInputEvent::AltKey;
165 if (flags & EF_COMMAND_DOWN)
166 modifiers |= blink::WebInputEvent::MetaKey;
167
168 if (flags & EF_LEFT_MOUSE_BUTTON)
169 modifiers |= blink::WebInputEvent::LeftButtonDown;
170 if (flags & EF_MIDDLE_MOUSE_BUTTON)
171 modifiers |= blink::WebInputEvent::MiddleButtonDown;
172 if (flags & EF_RIGHT_MOUSE_BUTTON)
173 modifiers |= blink::WebInputEvent::RightButtonDown;
174 if (flags & EF_CAPS_LOCK_DOWN)
175 modifiers |= blink::WebInputEvent::CapsLockOn;
176 if (flags & EF_IS_REPEAT)
177 modifiers |= blink::WebInputEvent::IsAutoRepeat;
178 if (flags & EF_NUMPAD_KEY)
179 modifiers |= blink::WebInputEvent::IsKeyPad;
180
181 return modifiers;
182 }
183
184 WebGestureEvent CreateWebGestureEvent(const GestureEventDetails& details,
290 base::TimeDelta timestamp, 185 base::TimeDelta timestamp,
291 const gfx::PointF& location, 186 const gfx::PointF& location,
292 const gfx::PointF& raw_location, 187 const gfx::PointF& raw_location,
293 int flags) { 188 int flags) {
294 WebGestureEvent gesture; 189 WebGestureEvent gesture;
295 gesture.timeStampSeconds = timestamp.InSecondsF(); 190 gesture.timeStampSeconds = timestamp.InSecondsF();
296 gesture.x = gfx::ToFlooredInt(location.x()); 191 gesture.x = gfx::ToFlooredInt(location.x());
297 gesture.y = gfx::ToFlooredInt(location.y()); 192 gesture.y = gfx::ToFlooredInt(location.y());
298 gesture.globalX = gfx::ToFlooredInt(raw_location.x()); 193 gesture.globalX = gfx::ToFlooredInt(raw_location.x());
299 gesture.globalY = gfx::ToFlooredInt(raw_location.y()); 194 gesture.globalY = gfx::ToFlooredInt(raw_location.y());
300 gesture.modifiers = EventFlagsToWebEventModifiers(flags); 195 gesture.modifiers = EventFlagsToWebEventModifiers(flags);
301 gesture.sourceDevice = blink::WebGestureDeviceTouchscreen; 196 gesture.sourceDevice = blink::WebGestureDeviceTouchscreen;
302 197
303 switch (details.type()) { 198 switch (details.type()) {
304 case ui::ET_GESTURE_SHOW_PRESS: 199 case ET_GESTURE_SHOW_PRESS:
305 gesture.type = WebInputEvent::GestureShowPress; 200 gesture.type = WebInputEvent::GestureShowPress;
306 gesture.data.showPress.width = details.bounding_box_f().width(); 201 gesture.data.showPress.width = details.bounding_box_f().width();
307 gesture.data.showPress.height = details.bounding_box_f().height(); 202 gesture.data.showPress.height = details.bounding_box_f().height();
308 break; 203 break;
309 case ui::ET_GESTURE_DOUBLE_TAP: 204 case ET_GESTURE_DOUBLE_TAP:
310 gesture.type = WebInputEvent::GestureDoubleTap; 205 gesture.type = WebInputEvent::GestureDoubleTap;
311 DCHECK_EQ(1, details.tap_count()); 206 DCHECK_EQ(1, details.tap_count());
312 gesture.data.tap.tapCount = details.tap_count(); 207 gesture.data.tap.tapCount = details.tap_count();
313 gesture.data.tap.width = details.bounding_box_f().width(); 208 gesture.data.tap.width = details.bounding_box_f().width();
314 gesture.data.tap.height = details.bounding_box_f().height(); 209 gesture.data.tap.height = details.bounding_box_f().height();
315 break; 210 break;
316 case ui::ET_GESTURE_TAP: 211 case ET_GESTURE_TAP:
317 gesture.type = WebInputEvent::GestureTap; 212 gesture.type = WebInputEvent::GestureTap;
318 DCHECK_GE(details.tap_count(), 1); 213 DCHECK_GE(details.tap_count(), 1);
319 gesture.data.tap.tapCount = details.tap_count(); 214 gesture.data.tap.tapCount = details.tap_count();
320 gesture.data.tap.width = details.bounding_box_f().width(); 215 gesture.data.tap.width = details.bounding_box_f().width();
321 gesture.data.tap.height = details.bounding_box_f().height(); 216 gesture.data.tap.height = details.bounding_box_f().height();
322 break; 217 break;
323 case ui::ET_GESTURE_TAP_UNCONFIRMED: 218 case ET_GESTURE_TAP_UNCONFIRMED:
324 gesture.type = WebInputEvent::GestureTapUnconfirmed; 219 gesture.type = WebInputEvent::GestureTapUnconfirmed;
325 DCHECK_EQ(1, details.tap_count()); 220 DCHECK_EQ(1, details.tap_count());
326 gesture.data.tap.tapCount = details.tap_count(); 221 gesture.data.tap.tapCount = details.tap_count();
327 gesture.data.tap.width = details.bounding_box_f().width(); 222 gesture.data.tap.width = details.bounding_box_f().width();
328 gesture.data.tap.height = details.bounding_box_f().height(); 223 gesture.data.tap.height = details.bounding_box_f().height();
329 break; 224 break;
330 case ui::ET_GESTURE_LONG_PRESS: 225 case ET_GESTURE_LONG_PRESS:
331 gesture.type = WebInputEvent::GestureLongPress; 226 gesture.type = WebInputEvent::GestureLongPress;
332 gesture.data.longPress.width = details.bounding_box_f().width(); 227 gesture.data.longPress.width = details.bounding_box_f().width();
333 gesture.data.longPress.height = details.bounding_box_f().height(); 228 gesture.data.longPress.height = details.bounding_box_f().height();
334 break; 229 break;
335 case ui::ET_GESTURE_LONG_TAP: 230 case ET_GESTURE_LONG_TAP:
336 gesture.type = WebInputEvent::GestureLongTap; 231 gesture.type = WebInputEvent::GestureLongTap;
337 gesture.data.longPress.width = details.bounding_box_f().width(); 232 gesture.data.longPress.width = details.bounding_box_f().width();
338 gesture.data.longPress.height = details.bounding_box_f().height(); 233 gesture.data.longPress.height = details.bounding_box_f().height();
339 break; 234 break;
340 case ui::ET_GESTURE_TWO_FINGER_TAP: 235 case ET_GESTURE_TWO_FINGER_TAP:
341 gesture.type = blink::WebInputEvent::GestureTwoFingerTap; 236 gesture.type = blink::WebInputEvent::GestureTwoFingerTap;
342 gesture.data.twoFingerTap.firstFingerWidth = details.first_finger_width(); 237 gesture.data.twoFingerTap.firstFingerWidth = details.first_finger_width();
343 gesture.data.twoFingerTap.firstFingerHeight = 238 gesture.data.twoFingerTap.firstFingerHeight =
344 details.first_finger_height(); 239 details.first_finger_height();
345 break; 240 break;
346 case ui::ET_GESTURE_SCROLL_BEGIN: 241 case ET_GESTURE_SCROLL_BEGIN:
347 gesture.type = WebInputEvent::GestureScrollBegin; 242 gesture.type = WebInputEvent::GestureScrollBegin;
348 gesture.data.scrollBegin.deltaXHint = details.scroll_x_hint(); 243 gesture.data.scrollBegin.deltaXHint = details.scroll_x_hint();
349 gesture.data.scrollBegin.deltaYHint = details.scroll_y_hint(); 244 gesture.data.scrollBegin.deltaYHint = details.scroll_y_hint();
350 break; 245 break;
351 case ui::ET_GESTURE_SCROLL_UPDATE: 246 case ET_GESTURE_SCROLL_UPDATE:
352 gesture.type = WebInputEvent::GestureScrollUpdate; 247 gesture.type = WebInputEvent::GestureScrollUpdate;
353 gesture.data.scrollUpdate.deltaX = details.scroll_x(); 248 gesture.data.scrollUpdate.deltaX = details.scroll_x();
354 gesture.data.scrollUpdate.deltaY = details.scroll_y(); 249 gesture.data.scrollUpdate.deltaY = details.scroll_y();
355 gesture.data.scrollUpdate.previousUpdateInSequencePrevented = 250 gesture.data.scrollUpdate.previousUpdateInSequencePrevented =
356 details.previous_scroll_update_in_sequence_prevented(); 251 details.previous_scroll_update_in_sequence_prevented();
357 break; 252 break;
358 case ui::ET_GESTURE_SCROLL_END: 253 case ET_GESTURE_SCROLL_END:
359 gesture.type = WebInputEvent::GestureScrollEnd; 254 gesture.type = WebInputEvent::GestureScrollEnd;
360 break; 255 break;
361 case ui::ET_SCROLL_FLING_START: 256 case ET_SCROLL_FLING_START:
362 gesture.type = WebInputEvent::GestureFlingStart; 257 gesture.type = WebInputEvent::GestureFlingStart;
363 gesture.data.flingStart.velocityX = details.velocity_x(); 258 gesture.data.flingStart.velocityX = details.velocity_x();
364 gesture.data.flingStart.velocityY = details.velocity_y(); 259 gesture.data.flingStart.velocityY = details.velocity_y();
365 break; 260 break;
366 case ui::ET_SCROLL_FLING_CANCEL: 261 case ET_SCROLL_FLING_CANCEL:
367 gesture.type = WebInputEvent::GestureFlingCancel; 262 gesture.type = WebInputEvent::GestureFlingCancel;
368 break; 263 break;
369 case ui::ET_GESTURE_PINCH_BEGIN: 264 case ET_GESTURE_PINCH_BEGIN:
370 gesture.type = WebInputEvent::GesturePinchBegin; 265 gesture.type = WebInputEvent::GesturePinchBegin;
371 break; 266 break;
372 case ui::ET_GESTURE_PINCH_UPDATE: 267 case ET_GESTURE_PINCH_UPDATE:
373 gesture.type = WebInputEvent::GesturePinchUpdate; 268 gesture.type = WebInputEvent::GesturePinchUpdate;
374 gesture.data.pinchUpdate.scale = details.scale(); 269 gesture.data.pinchUpdate.scale = details.scale();
375 break; 270 break;
376 case ui::ET_GESTURE_PINCH_END: 271 case ET_GESTURE_PINCH_END:
377 gesture.type = WebInputEvent::GesturePinchEnd; 272 gesture.type = WebInputEvent::GesturePinchEnd;
378 break; 273 break;
379 case ui::ET_GESTURE_TAP_CANCEL: 274 case ET_GESTURE_TAP_CANCEL:
380 gesture.type = WebInputEvent::GestureTapCancel; 275 gesture.type = WebInputEvent::GestureTapCancel;
381 break; 276 break;
382 case ui::ET_GESTURE_TAP_DOWN: 277 case ET_GESTURE_TAP_DOWN:
383 gesture.type = WebInputEvent::GestureTapDown; 278 gesture.type = WebInputEvent::GestureTapDown;
384 gesture.data.tapDown.width = details.bounding_box_f().width(); 279 gesture.data.tapDown.width = details.bounding_box_f().width();
385 gesture.data.tapDown.height = details.bounding_box_f().height(); 280 gesture.data.tapDown.height = details.bounding_box_f().height();
386 break; 281 break;
387 case ui::ET_GESTURE_BEGIN: 282 case ET_GESTURE_BEGIN:
388 case ui::ET_GESTURE_END: 283 case ET_GESTURE_END:
389 case ui::ET_GESTURE_SWIPE: 284 case ET_GESTURE_SWIPE:
390 // The caller is responsible for discarding these gestures appropriately. 285 // The caller is responsible for discarding these gestures appropriately.
391 gesture.type = WebInputEvent::Undefined; 286 gesture.type = WebInputEvent::Undefined;
392 break; 287 break;
393 default: 288 default:
394 NOTREACHED() << "ui::EventType provided wasn't a valid gesture event: " 289 NOTREACHED() << "EventType provided wasn't a valid gesture event: "
395 << details.type(); 290 << details.type();
396 } 291 }
397 292
398 return gesture; 293 return gesture;
399 } 294 }
400 295
401 WebGestureEvent CreateWebGestureEventFromGestureEventData( 296 WebGestureEvent CreateWebGestureEventFromGestureEventData(
402 const ui::GestureEventData& data) { 297 const GestureEventData& data) {
403 return CreateWebGestureEvent(data.details, 298 return CreateWebGestureEvent(data.details, data.time - base::TimeTicks(),
404 data.time - base::TimeTicks(),
405 gfx::PointF(data.x, data.y), 299 gfx::PointF(data.x, data.y),
406 gfx::PointF(data.raw_x, data.raw_y), 300 gfx::PointF(data.raw_x, data.raw_y), data.flags);
407 data.flags);
408 } 301 }
409 302
410 int EventFlagsToWebEventModifiers(int flags) { 303 } // namespace ui
411 int modifiers = 0;
412
413 if (flags & ui::EF_SHIFT_DOWN)
414 modifiers |= blink::WebInputEvent::ShiftKey;
415 if (flags & ui::EF_CONTROL_DOWN)
416 modifiers |= blink::WebInputEvent::ControlKey;
417 if (flags & ui::EF_ALT_DOWN)
418 modifiers |= blink::WebInputEvent::AltKey;
419 if (flags & ui::EF_COMMAND_DOWN)
420 modifiers |= blink::WebInputEvent::MetaKey;
421
422 if (flags & ui::EF_LEFT_MOUSE_BUTTON)
423 modifiers |= blink::WebInputEvent::LeftButtonDown;
424 if (flags & ui::EF_MIDDLE_MOUSE_BUTTON)
425 modifiers |= blink::WebInputEvent::MiddleButtonDown;
426 if (flags & ui::EF_RIGHT_MOUSE_BUTTON)
427 modifiers |= blink::WebInputEvent::RightButtonDown;
428 if (flags & ui::EF_CAPS_LOCK_DOWN)
429 modifiers |= blink::WebInputEvent::CapsLockOn;
430 if (flags & ui::EF_IS_REPEAT)
431 modifiers |= blink::WebInputEvent::IsAutoRepeat;
432 if (flags & ui::EF_NUMPAD_KEY)
433 modifiers |= blink::WebInputEvent::IsKeyPad;
434
435 return modifiers;
436 }
437
438 int WebEventModifiersToEventFlags(int modifiers) {
439 int flags = 0;
440
441 if (modifiers & blink::WebInputEvent::ShiftKey)
442 flags |= ui::EF_SHIFT_DOWN;
443 if (modifiers & blink::WebInputEvent::ControlKey)
444 flags |= ui::EF_CONTROL_DOWN;
445 if (modifiers & blink::WebInputEvent::AltKey)
446 flags |= ui::EF_ALT_DOWN;
447 if (modifiers & blink::WebInputEvent::MetaKey)
448 flags |= ui::EF_COMMAND_DOWN;
449
450 if (modifiers & blink::WebInputEvent::LeftButtonDown)
451 flags |= ui::EF_LEFT_MOUSE_BUTTON;
452 if (modifiers & blink::WebInputEvent::MiddleButtonDown)
453 flags |= ui::EF_MIDDLE_MOUSE_BUTTON;
454 if (modifiers & blink::WebInputEvent::RightButtonDown)
455 flags |= ui::EF_RIGHT_MOUSE_BUTTON;
456 if (modifiers & blink::WebInputEvent::CapsLockOn)
457 flags |= ui::EF_CAPS_LOCK_DOWN;
458 if (modifiers & blink::WebInputEvent::IsAutoRepeat)
459 flags |= ui::EF_IS_REPEAT;
460 if (modifiers & blink::WebInputEvent::IsKeyPad)
461 flags |= ui::EF_NUMPAD_KEY;
462
463 return flags;
464 }
465
466 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698