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

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

Issue 2751833006: Treat NotifyVirtual events as mouse move events for blink. (Closed)
Patch Set: Roll all code into one file Created 3 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 "ui/events/blink/web_input_event.h" 5 #include "ui/events/blink/web_input_event.h"
6 6
7 #include "ui/events/base_event_utils.h" 7 #include "ui/events/base_event_utils.h"
8 #include "ui/events/blink/blink_event_util.h" 8 #include "ui/events/blink/blink_event_util.h"
9 #include "ui/events/blink/blink_features.h" 9 #include "ui/events/blink/blink_features.h"
10 #include "ui/events/event.h" 10 #include "ui/events/event.h"
11 #include "ui/events/event_utils.h" 11 #include "ui/events/event_utils.h"
12 #include "ui/events/keycodes/dom/keycode_converter.h" 12 #include "ui/events/keycodes/dom/keycode_converter.h"
13 #include "ui/events/keycodes/keyboard_code_conversion.h" 13 #include "ui/events/keycodes/keyboard_code_conversion.h"
14 14
15 #if defined(OS_WIN) 15 #if defined(OS_WIN)
16 #include "ui/events/blink/web_input_event_builders_win.h" 16 #include "ui/events/blink/web_input_event_builders_win.h"
17 #endif 17 #endif
18 18
19 #if defined(USE_X11)
20 #include <X11/Xlib.h>
21 #endif
22
19 namespace ui { 23 namespace ui {
20 24
21 namespace { 25 namespace {
22 26
23 gfx::Point GetScreenLocationFromEvent( 27 gfx::Point GetScreenLocationFromEvent(
24 const LocatedEvent& event, 28 const LocatedEvent& event,
25 const base::Callback<gfx::Point(const LocatedEvent& event)>& 29 const base::Callback<gfx::Point(const LocatedEvent& event)>&
26 screen_location_callback) { 30 screen_location_callback) {
27 DCHECK(!screen_location_callback.is_null()); 31 DCHECK(!screen_location_callback.is_null());
28 return event.target() ? screen_location_callback.Run(event) 32 return event.target() ? screen_location_callback.Run(event)
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 switch (event.type()) { 385 switch (event.type()) {
382 case ET_MOUSE_PRESSED: 386 case ET_MOUSE_PRESSED:
383 type = blink::WebInputEvent::MouseDown; 387 type = blink::WebInputEvent::MouseDown;
384 click_count = event.GetClickCount(); 388 click_count = event.GetClickCount();
385 break; 389 break;
386 case ET_MOUSE_RELEASED: 390 case ET_MOUSE_RELEASED:
387 type = blink::WebInputEvent::MouseUp; 391 type = blink::WebInputEvent::MouseUp;
388 click_count = event.GetClickCount(); 392 click_count = event.GetClickCount();
389 break; 393 break;
390 case ET_MOUSE_EXITED: { 394 case ET_MOUSE_EXITED: {
395 #if defined(USE_X11)
396 // NotifyVirtual events are created for intermediate windows that the
397 // pointer crosses through. These occur when middle clicking.
398 // Change these into mouse move events.
399 const base::NativeEvent& native_event = event.native_event();
400
401 if (native_event && native_event->type == LeaveNotify &&
402 native_event->xcrossing.detail == NotifyVirtual) {
403 type = blink::WebInputEvent::MouseMove;
404 break;
405 }
406 #endif
391 static bool s_send_leave = 407 static bool s_send_leave =
392 base::FeatureList::IsEnabled(features::kSendMouseLeaveEvents); 408 base::FeatureList::IsEnabled(features::kSendMouseLeaveEvents);
393 type = s_send_leave ? blink::WebInputEvent::MouseLeave 409 type = s_send_leave ? blink::WebInputEvent::MouseLeave
394 : blink::WebInputEvent::MouseMove; 410 : blink::WebInputEvent::MouseMove;
395 break; 411 break;
396 } 412 }
397 case ET_MOUSE_ENTERED: 413 case ET_MOUSE_ENTERED:
398 case ET_MOUSE_MOVED: 414 case ET_MOUSE_MOVED:
399 case ET_MOUSE_DRAGGED: 415 case ET_MOUSE_DRAGGED:
400 type = blink::WebInputEvent::MouseMove; 416 type = blink::WebInputEvent::MouseMove;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 webkit_event.tiltX = roundf(event.pointer_details().tilt_x); 470 webkit_event.tiltX = roundf(event.pointer_details().tilt_x);
455 webkit_event.tiltY = roundf(event.pointer_details().tilt_y); 471 webkit_event.tiltY = roundf(event.pointer_details().tilt_y);
456 webkit_event.force = event.pointer_details().force; 472 webkit_event.force = event.pointer_details().force;
457 webkit_event.pointerType = 473 webkit_event.pointerType =
458 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type); 474 EventPointerTypeToWebPointerType(event.pointer_details().pointer_type);
459 475
460 return webkit_event; 476 return webkit_event;
461 } 477 }
462 478
463 } // namespace ui 479 } // namespace ui
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698