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

Side by Side Diff: content/browser/renderer_host/web_input_event_aurax11.cc

Issue 11047012: Wiring metro mouse events to aura viewer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 2 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 | Annotate | Revision Log
« no previous file with comments | « content/browser/renderer_host/web_input_event_aura.cc ('k') | ui/aura/aura.gyp » ('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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // Portions based heavily on: 5 // Portions based heavily on:
6 // third_party/WebKit/Source/WebKit/chromium/public/gtk/WebInputEventFactory.cpp 6 // third_party/WebKit/Source/WebKit/chromium/public/gtk/WebInputEventFactory.cpp
7 // 7 //
8 /* 8 /*
9 * Copyright (C) 2006-2011 Google Inc. All rights reserved. 9 * Copyright (C) 2006-2011 Google Inc. All rights reserved.
10 * 10 *
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 namespace content { 52 namespace content {
53 53
54 // chromium WebKit does not provide a WebInputEventFactory for X11, so we have 54 // chromium WebKit does not provide a WebInputEventFactory for X11, so we have
55 // to do the work here ourselves. 55 // to do the work here ourselves.
56 56
57 namespace { 57 namespace {
58 58
59 // This matches Firefox behavior. 59 // This matches Firefox behavior.
60 const int kPixelsPerTick = 53; 60 const int kPixelsPerTick = 53;
61 61
62 int EventFlagsToWebEventModifiers(int flags) {
63 int modifiers = 0;
64 if (flags & ui::EF_SHIFT_DOWN)
65 modifiers |= WebKit::WebInputEvent::ShiftKey;
66 if (flags & ui::EF_CONTROL_DOWN)
67 modifiers |= WebKit::WebInputEvent::ControlKey;
68 if (flags & ui::EF_ALT_DOWN)
69 modifiers |= WebKit::WebInputEvent::AltKey;
70 // TODO(beng): MetaKey/META_MASK
71 if (flags & ui::EF_LEFT_MOUSE_BUTTON)
72 modifiers |= WebKit::WebInputEvent::LeftButtonDown;
73 if (flags & ui::EF_MIDDLE_MOUSE_BUTTON)
74 modifiers |= WebKit::WebInputEvent::MiddleButtonDown;
75 if (flags & ui::EF_RIGHT_MOUSE_BUTTON)
76 modifiers |= WebKit::WebInputEvent::RightButtonDown;
77 if (flags & ui::EF_CAPS_LOCK_DOWN)
78 modifiers |= WebKit::WebInputEvent::CapsLockOn;
79 return modifiers;
80 }
81
82 int XKeyEventToWindowsKeyCode(XKeyEvent* event) { 62 int XKeyEventToWindowsKeyCode(XKeyEvent* event) {
83 int windows_key_code = 63 int windows_key_code =
84 ui::KeyboardCodeFromXKeyEvent(reinterpret_cast<XEvent*>(event)); 64 ui::KeyboardCodeFromXKeyEvent(reinterpret_cast<XEvent*>(event));
85 if (windows_key_code == ui::VKEY_SHIFT || 65 if (windows_key_code == ui::VKEY_SHIFT ||
86 windows_key_code == ui::VKEY_CONTROL || 66 windows_key_code == ui::VKEY_CONTROL ||
87 windows_key_code == ui::VKEY_MENU) { 67 windows_key_code == ui::VKEY_MENU) {
88 // To support DOM3 'location' attribute, we need to lookup an X KeySym and 68 // To support DOM3 'location' attribute, we need to lookup an X KeySym and
89 // set ui::VKEY_[LR]XXX instead of ui::VKEY_XXX. 69 // set ui::VKEY_[LR]XXX instead of ui::VKEY_XXX.
90 KeySym keysym = XK_VoidSymbol; 70 KeySym keysym = XK_VoidSymbol;
91 XLookupString(event, NULL, 0, &keysym, NULL); 71 XLookupString(event, NULL, 0, &keysym, NULL);
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
182 return WebKit::WebInputEvent::TouchMove; 162 return WebKit::WebInputEvent::TouchMove;
183 case ui::ET_TOUCH_CANCELLED: 163 case ui::ET_TOUCH_CANCELLED:
184 return WebKit::WebInputEvent::TouchCancel; 164 return WebKit::WebInputEvent::TouchCancel;
185 default: 165 default:
186 return WebKit::WebInputEvent::Undefined; 166 return WebKit::WebInputEvent::Undefined;
187 } 167 }
188 } 168 }
189 169
190 } // namespace 170 } // namespace
191 171
192 WebKit::WebMouseEvent MakeWebMouseEventFromAuraEvent(ui::MouseEvent* event) {
193 WebKit::WebMouseEvent webkit_event;
194
195 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
196 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
197
198 webkit_event.button = WebKit::WebMouseEvent::ButtonNone;
199 if (event->flags() & ui::EF_LEFT_MOUSE_BUTTON)
200 webkit_event.button = WebKit::WebMouseEvent::ButtonLeft;
201 if (event->flags() & ui::EF_MIDDLE_MOUSE_BUTTON)
202 webkit_event.button = WebKit::WebMouseEvent::ButtonMiddle;
203 if (event->flags() & ui::EF_RIGHT_MOUSE_BUTTON)
204 webkit_event.button = WebKit::WebMouseEvent::ButtonRight;
205
206 switch (event->type()) {
207 case ui::ET_MOUSE_PRESSED:
208 webkit_event.type = WebKit::WebInputEvent::MouseDown;
209 webkit_event.clickCount = event->GetClickCount();
210 break;
211 case ui::ET_MOUSE_RELEASED:
212 webkit_event.type = WebKit::WebInputEvent::MouseUp;
213 break;
214 case ui::ET_MOUSE_ENTERED:
215 case ui::ET_MOUSE_EXITED:
216 case ui::ET_MOUSE_MOVED:
217 case ui::ET_MOUSE_DRAGGED:
218 webkit_event.type = WebKit::WebInputEvent::MouseMove;
219 break;
220 default:
221 NOTIMPLEMENTED() << "Received unexpected event: " << event->type();
222 break;
223 }
224
225 return webkit_event;
226 }
227
228 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent( 172 WebKit::WebMouseWheelEvent MakeWebMouseWheelEventFromAuraEvent(
229 ui::MouseWheelEvent* event) { 173 ui::MouseWheelEvent* event) {
230 WebKit::WebMouseWheelEvent webkit_event; 174 WebKit::WebMouseWheelEvent webkit_event;
231 175
232 webkit_event.type = WebKit::WebInputEvent::MouseWheel; 176 webkit_event.type = WebKit::WebInputEvent::MouseWheel;
233 webkit_event.button = WebKit::WebMouseEvent::ButtonNone; 177 webkit_event.button = WebKit::WebMouseEvent::ButtonNone;
234 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags()); 178 webkit_event.modifiers = EventFlagsToWebEventModifiers(event->flags());
235 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF(); 179 webkit_event.timeStampSeconds = event->time_stamp().InSecondsF();
236 webkit_event.deltaY = event->offset(); 180 webkit_event.deltaY = event->offset();
237 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick; 181 webkit_event.wheelTicksY = webkit_event.deltaY / kPixelsPerTick;
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 430
487 // Update the type of the touch event. 431 // Update the type of the touch event.
488 web_event->type = TouchEventTypeFromEvent(event); 432 web_event->type = TouchEventTypeFromEvent(event);
489 web_event->timeStampSeconds = event->time_stamp().InSecondsF(); 433 web_event->timeStampSeconds = event->time_stamp().InSecondsF();
490 web_event->modifiers = EventFlagsToWebEventModifiers(event->flags()); 434 web_event->modifiers = EventFlagsToWebEventModifiers(event->flags());
491 435
492 return point; 436 return point;
493 } 437 }
494 438
495 } // namespace content 439 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/web_input_event_aura.cc ('k') | ui/aura/aura.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698