diff options
Diffstat (limited to 'views/focus/accelerator_handler_touch.cc')
-rw-r--r-- | views/focus/accelerator_handler_touch.cc | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/views/focus/accelerator_handler_touch.cc b/views/focus/accelerator_handler_touch.cc index 84c042d..b24d8f0 100644 --- a/views/focus/accelerator_handler_touch.cc +++ b/views/focus/accelerator_handler_touch.cc @@ -15,41 +15,12 @@ #include "views/accelerator.h" #include "views/event.h" #include "views/focus/focus_manager.h" +#include "views/touchui/touch_factory.h" #include "views/widget/root_view.h" #include "views/widget/widget_gtk.h" namespace views { -#if defined(HAVE_XINPUT2) -// Functions related to determining touch devices. -class TouchFactory { - public: - // Keep a list of touch devices so that it is possible to determine if a - // pointer event is a touch-event or a mouse-event. - static void SetTouchDeviceListInternal( - const std::vector<unsigned int>& devices) { - for (std::vector<unsigned int>::const_iterator iter = devices.begin(); - iter != devices.end(); ++iter) { - DCHECK(*iter < touch_devices.size()); - touch_devices[*iter] = true; - } - } - - // Is the device a touch-device? - static bool IsTouchDevice(unsigned int deviceid) { - return deviceid < touch_devices.size() ? touch_devices[deviceid] : false; - } - - private: - // A quick lookup table for determining if a device is a touch device. - static std::bitset<128> touch_devices; - - DISALLOW_COPY_AND_ASSIGN(TouchFactory); -}; - -std::bitset<128> TouchFactory::touch_devices; -#endif - namespace { RootView* FindRootViewForGdkWindow(GdkWindow* gdk_window) { @@ -78,7 +49,7 @@ bool X2EventIsTouchEvent(XEvent* xev) { case XI_ButtonRelease: case XI_Motion: { // Is the event coming from a touch device? - return TouchFactory::IsTouchDevice( + return TouchFactory::GetInstance()->IsTouchDevice( static_cast<XIDeviceEvent*>(cookie->data)->sourceid); } default: @@ -200,7 +171,7 @@ bool DispatchXEvent(XEvent* xev) { #if defined(HAVE_XINPUT2) void SetTouchDeviceList(std::vector<unsigned int>& devices) { - TouchFactory::SetTouchDeviceListInternal(devices); + TouchFactory::GetInstance()->SetTouchDeviceList(devices); } #endif |