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

Side by Side Diff: ui/events/x/events_x.cc

Issue 289283015: Extract touchscreen device management into a generic manager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 6 years, 6 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
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 #include "ui/events/event_constants.h" 5 #include "ui/events/event_constants.h"
6 6
7 #include <cmath> 7 #include <cmath>
8 #include <string.h> 8 #include <string.h>
9 #include <X11/extensions/XInput.h> 9 #include <X11/extensions/XInput.h>
10 #include <X11/extensions/XInput2.h> 10 #include <X11/extensions/XInput2.h>
11 #include <X11/Xlib.h> 11 #include <X11/Xlib.h>
12 #include <X11/Xutil.h> 12 #include <X11/Xutil.h>
13 13
14 #include "base/logging.h" 14 #include "base/logging.h"
15 #include "base/memory/singleton.h" 15 #include "base/memory/singleton.h"
16 #include "ui/events/event_utils.h" 16 #include "ui/events/event_utils.h"
17 #include "ui/events/keycodes/keyboard_code_conversion_x.h" 17 #include "ui/events/keycodes/keyboard_code_conversion_x.h"
18 #include "ui/events/x/device_data_manager.h" 18 #include "ui/events/x/device_data_manager_x11.h"
19 #include "ui/events/x/device_list_cache_x.h" 19 #include "ui/events/x/device_list_cache_x.h"
20 #include "ui/events/x/touch_factory_x11.h" 20 #include "ui/events/x/touch_factory_x11.h"
21 #include "ui/gfx/display.h" 21 #include "ui/gfx/display.h"
22 #include "ui/gfx/point.h" 22 #include "ui/gfx/point.h"
23 #include "ui/gfx/rect.h" 23 #include "ui/gfx/rect.h"
24 #include "ui/gfx/screen.h" 24 #include "ui/gfx/screen.h"
25 #include "ui/gfx/x/x11_atom_cache.h" 25 #include "ui/gfx/x/x11_atom_cache.h"
26 #include "ui/gfx/x/x11_types.h" 26 #include "ui/gfx/x/x11_types.h"
27 27
28 namespace { 28 namespace {
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 if (ui::GetTouchForce(native_event) < 1.0f) 111 if (ui::GetTouchForce(native_event) < 1.0f)
112 return false; 112 return false;
113 113
114 if (ui::EventLocationFromNative(native_event) != gfx::Point()) 114 if (ui::EventLocationFromNative(native_event) != gfx::Point())
115 return false; 115 return false;
116 116
117 // Radius is in pixels, and the valuator is the diameter in pixels. 117 // Radius is in pixels, and the valuator is the diameter in pixels.
118 double radius = ui::GetTouchRadiusX(native_event), min, max; 118 double radius = ui::GetTouchRadiusX(native_event), min, max;
119 unsigned int deviceid = 119 unsigned int deviceid =
120 static_cast<XIDeviceEvent*>(native_event->xcookie.data)->sourceid; 120 static_cast<XIDeviceEvent*>(native_event->xcookie.data)->sourceid;
121 if (!ui::DeviceDataManager::GetInstance()->GetDataRange( 121 if (!ui::DeviceDataManagerX11::GetInstance()->GetDataRange(
122 deviceid, ui::DeviceDataManager::DT_TOUCH_MAJOR, &min, &max)) { 122 deviceid, ui::DeviceDataManagerX11::DT_TOUCH_MAJOR, &min, &max)) {
123 return false; 123 return false;
124 } 124 }
125 125
126 return radius * 2 == max; 126 return radius * 2 == max;
127 } 127 }
128 #endif 128 #endif
129 129
130 int GetEventFlagsFromXState(unsigned int state) { 130 int GetEventFlagsFromXState(unsigned int state) {
131 int flags = 0; 131 int flags = 0;
132 if (state & ControlMask) 132 if (state & ControlMask)
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 default: 198 default:
199 return 0; 199 return 0;
200 } 200 }
201 } 201 }
202 202
203 int GetButtonMaskForX2Event(XIDeviceEvent* xievent) { 203 int GetButtonMaskForX2Event(XIDeviceEvent* xievent) {
204 int buttonflags = 0; 204 int buttonflags = 0;
205 for (int i = 0; i < 8 * xievent->buttons.mask_len; i++) { 205 for (int i = 0; i < 8 * xievent->buttons.mask_len; i++) {
206 if (XIMaskIsSet(xievent->buttons.mask, i)) { 206 if (XIMaskIsSet(xievent->buttons.mask, i)) {
207 int button = (xievent->sourceid == xievent->deviceid) ? 207 int button = (xievent->sourceid == xievent->deviceid) ?
208 ui::DeviceDataManager::GetInstance()->GetMappedButton(i) : i; 208 ui::DeviceDataManagerX11::GetInstance()->GetMappedButton(i) : i;
209 buttonflags |= GetEventFlagsForButton(button); 209 buttonflags |= GetEventFlagsForButton(button);
210 } 210 }
211 } 211 }
212 return buttonflags; 212 return buttonflags;
213 } 213 }
214 214
215 ui::EventType GetTouchEventType(const base::NativeEvent& native_event) { 215 ui::EventType GetTouchEventType(const base::NativeEvent& native_event) {
216 XIDeviceEvent* event = 216 XIDeviceEvent* event =
217 static_cast<XIDeviceEvent*>(native_event->xcookie.data); 217 static_cast<XIDeviceEvent*>(native_event->xcookie.data);
218 #if defined(USE_XI2_MT) 218 #if defined(USE_XI2_MT)
(...skipping 23 matching lines...) Expand all
242 GetButtonMaskForX2Event(event)) 242 GetButtonMaskForX2Event(event))
243 return ui::ET_TOUCH_MOVED; 243 return ui::ET_TOUCH_MOVED;
244 return ui::ET_UNKNOWN; 244 return ui::ET_UNKNOWN;
245 default: 245 default:
246 NOTREACHED(); 246 NOTREACHED();
247 } 247 }
248 return ui::ET_UNKNOWN; 248 return ui::ET_UNKNOWN;
249 } 249 }
250 250
251 double GetTouchParamFromXEvent(XEvent* xev, 251 double GetTouchParamFromXEvent(XEvent* xev,
252 ui::DeviceDataManager::DataType val, 252 ui::DeviceDataManagerX11::DataType val,
253 double default_value) { 253 double default_value) {
254 ui::DeviceDataManager::GetInstance()->GetEventData( 254 ui::DeviceDataManagerX11::GetInstance()->GetEventData(
255 *xev, val, &default_value); 255 *xev, val, &default_value);
256 return default_value; 256 return default_value;
257 } 257 }
258 258
259 } // namespace 259 } // namespace
260 260
261 namespace ui { 261 namespace ui {
262 262
263 void UpdateDeviceList() { 263 void UpdateDeviceList() {
264 XDisplay* display = gfx::GetXDisplay(); 264 XDisplay* display = gfx::GetXDisplay();
265 DeviceListCacheX::GetInstance()->UpdateDeviceList(display); 265 DeviceListCacheX::GetInstance()->UpdateDeviceList(display);
266 TouchFactory::GetInstance()->UpdateDeviceList(display); 266 TouchFactory::GetInstance()->UpdateDeviceList(display);
267 DeviceDataManager::GetInstance()->UpdateDeviceList(display); 267 DeviceDataManagerX11::GetInstance()->UpdateDeviceList(display);
268 } 268 }
269 269
270 EventType EventTypeFromNative(const base::NativeEvent& native_event) { 270 EventType EventTypeFromNative(const base::NativeEvent& native_event) {
271 switch (native_event->type) { 271 switch (native_event->type) {
272 case KeyPress: 272 case KeyPress:
273 return ET_KEY_PRESSED; 273 return ET_KEY_PRESSED;
274 case KeyRelease: 274 case KeyRelease:
275 return ET_KEY_RELEASED; 275 return ET_KEY_RELEASED;
276 case ButtonPress: 276 case ButtonPress:
277 if (static_cast<int>(native_event->xbutton.button) >= kMinWheelButton && 277 if (static_cast<int>(native_event->xbutton.button) >= kMinWheelButton &&
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 int button = EventButtonFromNative(native_event); 327 int button = EventButtonFromNative(native_event);
328 // Drop wheel events; we should've already scrolled on the press. 328 // Drop wheel events; we should've already scrolled on the press.
329 if (button >= kMinWheelButton && button <= kMaxWheelButton) 329 if (button >= kMinWheelButton && button <= kMaxWheelButton)
330 return ET_UNKNOWN; 330 return ET_UNKNOWN;
331 return ET_MOUSE_RELEASED; 331 return ET_MOUSE_RELEASED;
332 } 332 }
333 case XI_Motion: { 333 case XI_Motion: {
334 bool is_cancel; 334 bool is_cancel;
335 if (GetFlingData(native_event, NULL, NULL, NULL, NULL, &is_cancel)) { 335 if (GetFlingData(native_event, NULL, NULL, NULL, NULL, &is_cancel)) {
336 return is_cancel ? ET_SCROLL_FLING_CANCEL : ET_SCROLL_FLING_START; 336 return is_cancel ? ET_SCROLL_FLING_CANCEL : ET_SCROLL_FLING_START;
337 } else if (DeviceDataManager::GetInstance()->IsScrollEvent( 337 } else if (DeviceDataManagerX11::GetInstance()->IsScrollEvent(
338 native_event)) { 338 native_event)) {
339 return IsTouchpadEvent(native_event) ? ET_SCROLL : ET_MOUSEWHEEL; 339 return IsTouchpadEvent(native_event) ? ET_SCROLL : ET_MOUSEWHEEL;
340 } else if (DeviceDataManager::GetInstance()->IsCMTMetricsEvent( 340 } else if (DeviceDataManagerX11::GetInstance()->IsCMTMetricsEvent(
341 native_event)) { 341 native_event)) {
342 return ET_UMA_DATA; 342 return ET_UMA_DATA;
343 } else if (GetButtonMaskForX2Event(xievent)) { 343 } else if (GetButtonMaskForX2Event(xievent)) {
344 return ET_MOUSE_DRAGGED; 344 return ET_MOUSE_DRAGGED;
345 } else { 345 } else {
346 return ET_MOUSE_MOVED; 346 return ET_MOUSE_MOVED;
347 } 347 }
348 } 348 }
349 } 349 }
350 } 350 }
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 case EnterNotify: 430 case EnterNotify:
431 case LeaveNotify: 431 case LeaveNotify:
432 return base::TimeDelta::FromMilliseconds(native_event->xcrossing.time); 432 return base::TimeDelta::FromMilliseconds(native_event->xcrossing.time);
433 break; 433 break;
434 case GenericEvent: { 434 case GenericEvent: {
435 double start, end; 435 double start, end;
436 double touch_timestamp; 436 double touch_timestamp;
437 if (GetGestureTimes(native_event, &start, &end)) { 437 if (GetGestureTimes(native_event, &start, &end)) {
438 // If the driver supports gesture times, use them. 438 // If the driver supports gesture times, use them.
439 return base::TimeDelta::FromMicroseconds(end * 1000000); 439 return base::TimeDelta::FromMicroseconds(end * 1000000);
440 } else if (DeviceDataManager::GetInstance()->GetEventData(*native_event, 440 } else if (DeviceDataManagerX11::GetInstance()->GetEventData(
441 DeviceDataManager::DT_TOUCH_RAW_TIMESTAMP, &touch_timestamp)) { 441 *native_event,
442 DeviceDataManagerX11::DT_TOUCH_RAW_TIMESTAMP,
443 &touch_timestamp)) {
442 return base::TimeDelta::FromMicroseconds(touch_timestamp * 1000000); 444 return base::TimeDelta::FromMicroseconds(touch_timestamp * 1000000);
443 } else { 445 } else {
444 XIDeviceEvent* xide = 446 XIDeviceEvent* xide =
445 static_cast<XIDeviceEvent*>(native_event->xcookie.data); 447 static_cast<XIDeviceEvent*>(native_event->xcookie.data);
446 return base::TimeDelta::FromMilliseconds(xide->time); 448 return base::TimeDelta::FromMilliseconds(xide->time);
447 } 449 }
448 break; 450 break;
449 } 451 }
450 } 452 }
451 NOTREACHED(); 453 NOTREACHED();
(...skipping 13 matching lines...) Expand all
465 case GenericEvent: { 467 case GenericEvent: {
466 XIDeviceEvent* xievent = 468 XIDeviceEvent* xievent =
467 static_cast<XIDeviceEvent*>(native_event->xcookie.data); 469 static_cast<XIDeviceEvent*>(native_event->xcookie.data);
468 float x = xievent->event_x; 470 float x = xievent->event_x;
469 float y = xievent->event_y; 471 float y = xievent->event_y;
470 #if defined(OS_CHROMEOS) 472 #if defined(OS_CHROMEOS)
471 switch (xievent->evtype) { 473 switch (xievent->evtype) {
472 case XI_TouchBegin: 474 case XI_TouchBegin:
473 case XI_TouchUpdate: 475 case XI_TouchUpdate:
474 case XI_TouchEnd: 476 case XI_TouchEnd:
475 ui::DeviceDataManager::GetInstance()->ApplyTouchTransformer( 477 ui::DeviceDataManagerX11::GetInstance()->ApplyTouchTransformer(
476 xievent->deviceid, &x, &y); 478 xievent->deviceid, &x, &y);
477 break; 479 break;
478 default: 480 default:
479 break; 481 break;
480 } 482 }
481 #endif // defined(OS_CHROMEOS) 483 #endif // defined(OS_CHROMEOS)
482 return gfx::Point(static_cast<int>(x), static_cast<int>(y)); 484 return gfx::Point(static_cast<int>(x), static_cast<int>(y));
483 } 485 }
484 } 486 }
485 return gfx::Point(); 487 return gfx::Point();
(...skipping 26 matching lines...) Expand all
512 return gfx::Point(); 514 return gfx::Point();
513 } 515 }
514 516
515 int EventButtonFromNative(const base::NativeEvent& native_event) { 517 int EventButtonFromNative(const base::NativeEvent& native_event) {
516 CHECK_EQ(GenericEvent, native_event->type); 518 CHECK_EQ(GenericEvent, native_event->type);
517 XIDeviceEvent* xievent = 519 XIDeviceEvent* xievent =
518 static_cast<XIDeviceEvent*>(native_event->xcookie.data); 520 static_cast<XIDeviceEvent*>(native_event->xcookie.data);
519 int button = xievent->detail; 521 int button = xievent->detail;
520 522
521 return (xievent->sourceid == xievent->deviceid) ? 523 return (xievent->sourceid == xievent->deviceid) ?
522 DeviceDataManager::GetInstance()->GetMappedButton(button) : button; 524 DeviceDataManagerX11::GetInstance()->GetMappedButton(button) : button;
523 } 525 }
524 526
525 KeyboardCode KeyboardCodeFromNative(const base::NativeEvent& native_event) { 527 KeyboardCode KeyboardCodeFromNative(const base::NativeEvent& native_event) {
526 return KeyboardCodeFromXKeyEvent(native_event); 528 return KeyboardCodeFromXKeyEvent(native_event);
527 } 529 }
528 530
529 const char* CodeFromNative(const base::NativeEvent& native_event) { 531 const char* CodeFromNative(const base::NativeEvent& native_event) {
530 return CodeFromXEvent(native_event); 532 return CodeFromXEvent(native_event);
531 } 533 }
532 534
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
588 590
589 void ReleaseCopiedNativeEvent(const base::NativeEvent& event) { 591 void ReleaseCopiedNativeEvent(const base::NativeEvent& event) {
590 delete event; 592 delete event;
591 } 593 }
592 594
593 void ClearTouchIdIfReleased(const base::NativeEvent& xev) { 595 void ClearTouchIdIfReleased(const base::NativeEvent& xev) {
594 ui::EventType type = ui::EventTypeFromNative(xev); 596 ui::EventType type = ui::EventTypeFromNative(xev);
595 if (type == ui::ET_TOUCH_CANCELLED || 597 if (type == ui::ET_TOUCH_CANCELLED ||
596 type == ui::ET_TOUCH_RELEASED) { 598 type == ui::ET_TOUCH_RELEASED) {
597 ui::TouchFactory* factory = ui::TouchFactory::GetInstance(); 599 ui::TouchFactory* factory = ui::TouchFactory::GetInstance();
598 ui::DeviceDataManager* manager = ui::DeviceDataManager::GetInstance(); 600 ui::DeviceDataManagerX11* manager = ui::DeviceDataManagerX11::GetInstance();
599 double tracking_id; 601 double tracking_id;
600 if (manager->GetEventData( 602 if (manager->GetEventData(
601 *xev, ui::DeviceDataManager::DT_TOUCH_TRACKING_ID, &tracking_id)) { 603 *xev, ui::DeviceDataManagerX11::DT_TOUCH_TRACKING_ID, &tracking_id)) {
602 factory->ReleaseSlotForTrackingID(tracking_id); 604 factory->ReleaseSlotForTrackingID(tracking_id);
603 } 605 }
604 } 606 }
605 } 607 }
606 608
607 int GetTouchId(const base::NativeEvent& xev) { 609 int GetTouchId(const base::NativeEvent& xev) {
608 double slot = 0; 610 double slot = 0;
609 ui::DeviceDataManager* manager = ui::DeviceDataManager::GetInstance(); 611 ui::DeviceDataManagerX11* manager = ui::DeviceDataManagerX11::GetInstance();
610 double tracking_id; 612 double tracking_id;
611 if (!manager->GetEventData( 613 if (!manager->GetEventData(
612 *xev, ui::DeviceDataManager::DT_TOUCH_TRACKING_ID, &tracking_id)) { 614 *xev, ui::DeviceDataManagerX11::DT_TOUCH_TRACKING_ID, &tracking_id)) {
613 LOG(ERROR) << "Could not get the tracking ID for the event. Using 0."; 615 LOG(ERROR) << "Could not get the tracking ID for the event. Using 0.";
614 } else { 616 } else {
615 ui::TouchFactory* factory = ui::TouchFactory::GetInstance(); 617 ui::TouchFactory* factory = ui::TouchFactory::GetInstance();
616 slot = factory->GetSlotForTrackingID(tracking_id); 618 slot = factory->GetSlotForTrackingID(tracking_id);
617 } 619 }
618 return slot; 620 return slot;
619 } 621 }
620 622
621 float GetTouchRadiusX(const base::NativeEvent& native_event) { 623 float GetTouchRadiusX(const base::NativeEvent& native_event) {
622 return GetTouchParamFromXEvent(native_event, 624 return GetTouchParamFromXEvent(native_event,
623 ui::DeviceDataManager::DT_TOUCH_MAJOR, 0.0) / 2.0; 625 ui::DeviceDataManagerX11::DT_TOUCH_MAJOR, 0.0) / 2.0;
624 } 626 }
625 627
626 float GetTouchRadiusY(const base::NativeEvent& native_event) { 628 float GetTouchRadiusY(const base::NativeEvent& native_event) {
627 return GetTouchParamFromXEvent(native_event, 629 return GetTouchParamFromXEvent(native_event,
628 ui::DeviceDataManager::DT_TOUCH_MINOR, 0.0) / 2.0; 630 ui::DeviceDataManagerX11::DT_TOUCH_MINOR, 0.0) / 2.0;
629 } 631 }
630 632
631 float GetTouchAngle(const base::NativeEvent& native_event) { 633 float GetTouchAngle(const base::NativeEvent& native_event) {
632 return GetTouchParamFromXEvent(native_event, 634 return GetTouchParamFromXEvent(native_event,
633 ui::DeviceDataManager::DT_TOUCH_ORIENTATION, 0.0) / 2.0; 635 ui::DeviceDataManagerX11::DT_TOUCH_ORIENTATION, 0.0) / 2.0;
634 } 636 }
635 637
636 float GetTouchForce(const base::NativeEvent& native_event) { 638 float GetTouchForce(const base::NativeEvent& native_event) {
637 double force = 0.0; 639 double force = 0.0;
638 force = GetTouchParamFromXEvent(native_event, 640 force = GetTouchParamFromXEvent(native_event,
639 ui::DeviceDataManager::DT_TOUCH_PRESSURE, 0.0); 641 ui::DeviceDataManagerX11::DT_TOUCH_PRESSURE, 0.0);
640 unsigned int deviceid = 642 unsigned int deviceid =
641 static_cast<XIDeviceEvent*>(native_event->xcookie.data)->sourceid; 643 static_cast<XIDeviceEvent*>(native_event->xcookie.data)->sourceid;
642 // Force is normalized to fall into [0, 1] 644 // Force is normalized to fall into [0, 1]
643 if (!ui::DeviceDataManager::GetInstance()->NormalizeData( 645 if (!ui::DeviceDataManagerX11::GetInstance()->NormalizeData(
644 deviceid, ui::DeviceDataManager::DT_TOUCH_PRESSURE, &force)) 646 deviceid, ui::DeviceDataManagerX11::DT_TOUCH_PRESSURE, &force))
645 force = 0.0; 647 force = 0.0;
646 return force; 648 return force;
647 } 649 }
648 650
649 bool GetScrollOffsets(const base::NativeEvent& native_event, 651 bool GetScrollOffsets(const base::NativeEvent& native_event,
650 float* x_offset, 652 float* x_offset,
651 float* y_offset, 653 float* y_offset,
652 float* x_offset_ordinal, 654 float* x_offset_ordinal,
653 float* y_offset_ordinal, 655 float* y_offset_ordinal,
654 int* finger_count) { 656 int* finger_count) {
655 if (!DeviceDataManager::GetInstance()->IsScrollEvent(native_event)) 657 if (!DeviceDataManagerX11::GetInstance()->IsScrollEvent(native_event))
656 return false; 658 return false;
657 659
658 // Temp values to prevent passing NULLs to DeviceDataManager. 660 // Temp values to prevent passing NULLs to DeviceDataManager.
659 float x_offset_, y_offset_; 661 float x_offset_, y_offset_;
660 float x_offset_ordinal_, y_offset_ordinal_; 662 float x_offset_ordinal_, y_offset_ordinal_;
661 int finger_count_; 663 int finger_count_;
662 if (!x_offset) 664 if (!x_offset)
663 x_offset = &x_offset_; 665 x_offset = &x_offset_;
664 if (!y_offset) 666 if (!y_offset)
665 y_offset = &y_offset_; 667 y_offset = &y_offset_;
666 if (!x_offset_ordinal) 668 if (!x_offset_ordinal)
667 x_offset_ordinal = &x_offset_ordinal_; 669 x_offset_ordinal = &x_offset_ordinal_;
668 if (!y_offset_ordinal) 670 if (!y_offset_ordinal)
669 y_offset_ordinal = &y_offset_ordinal_; 671 y_offset_ordinal = &y_offset_ordinal_;
670 if (!finger_count) 672 if (!finger_count)
671 finger_count = &finger_count_; 673 finger_count = &finger_count_;
672 674
673 DeviceDataManager::GetInstance()->GetScrollOffsets( 675 DeviceDataManagerX11::GetInstance()->GetScrollOffsets(
674 native_event, 676 native_event,
675 x_offset, y_offset, 677 x_offset, y_offset,
676 x_offset_ordinal, y_offset_ordinal, 678 x_offset_ordinal, y_offset_ordinal,
677 finger_count); 679 finger_count);
678 return true; 680 return true;
679 } 681 }
680 682
681 bool GetFlingData(const base::NativeEvent& native_event, 683 bool GetFlingData(const base::NativeEvent& native_event,
682 float* vx, 684 float* vx,
683 float* vy, 685 float* vy,
684 float* vx_ordinal, 686 float* vx_ordinal,
685 float* vy_ordinal, 687 float* vy_ordinal,
686 bool* is_cancel) { 688 bool* is_cancel) {
687 if (!DeviceDataManager::GetInstance()->IsFlingEvent(native_event)) 689 if (!DeviceDataManagerX11::GetInstance()->IsFlingEvent(native_event))
688 return false; 690 return false;
689 691
690 float vx_, vy_; 692 float vx_, vy_;
691 float vx_ordinal_, vy_ordinal_; 693 float vx_ordinal_, vy_ordinal_;
692 bool is_cancel_; 694 bool is_cancel_;
693 if (!vx) 695 if (!vx)
694 vx = &vx_; 696 vx = &vx_;
695 if (!vy) 697 if (!vy)
696 vy = &vy_; 698 vy = &vy_;
697 if (!vx_ordinal) 699 if (!vx_ordinal)
698 vx_ordinal = &vx_ordinal_; 700 vx_ordinal = &vx_ordinal_;
699 if (!vy_ordinal) 701 if (!vy_ordinal)
700 vy_ordinal = &vy_ordinal_; 702 vy_ordinal = &vy_ordinal_;
701 if (!is_cancel) 703 if (!is_cancel)
702 is_cancel = &is_cancel_; 704 is_cancel = &is_cancel_;
703 705
704 DeviceDataManager::GetInstance()->GetFlingData( 706 DeviceDataManagerX11::GetInstance()->GetFlingData(
705 native_event, vx, vy, vx_ordinal, vy_ordinal, is_cancel); 707 native_event, vx, vy, vx_ordinal, vy_ordinal, is_cancel);
706 return true; 708 return true;
707 } 709 }
708 710
709 bool GetGestureTimes(const base::NativeEvent& native_event, 711 bool GetGestureTimes(const base::NativeEvent& native_event,
710 double* start_time, 712 double* start_time,
711 double* end_time) { 713 double* end_time) {
712 if (!DeviceDataManager::GetInstance()->HasGestureTimes(native_event)) 714 if (!DeviceDataManagerX11::GetInstance()->HasGestureTimes(native_event))
713 return false; 715 return false;
714 716
715 double start_time_, end_time_; 717 double start_time_, end_time_;
716 if (!start_time) 718 if (!start_time)
717 start_time = &start_time_; 719 start_time = &start_time_;
718 if (!end_time) 720 if (!end_time)
719 end_time = &end_time_; 721 end_time = &end_time_;
720 722
721 DeviceDataManager::GetInstance()->GetGestureTimes( 723 DeviceDataManagerX11::GetInstance()->GetGestureTimes(
722 native_event, start_time, end_time); 724 native_event, start_time, end_time);
723 return true; 725 return true;
724 } 726 }
725 727
726 bool IsTouchpadEvent(const base::NativeEvent& event) { 728 bool IsTouchpadEvent(const base::NativeEvent& event) {
727 return DeviceDataManager::GetInstance()->IsTouchpadXInputEvent(event); 729 return DeviceDataManagerX11::GetInstance()->IsTouchpadXInputEvent(event);
728 } 730 }
729 731
730 } // namespace ui 732 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698