Index: views/touchui/touch_factory.cc |
=================================================================== |
--- views/touchui/touch_factory.cc (revision 71884) |
+++ views/touchui/touch_factory.cc (working copy) |
@@ -1,79 +0,0 @@ |
-// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "views/touchui/touch_factory.h" |
- |
-#include <gdk/gdkx.h> |
-#include <X11/extensions/XInput2.h> |
- |
-#include "base/logging.h" |
- |
-namespace views { |
- |
-// static |
-TouchFactory* TouchFactory::GetInstance() { |
- return Singleton<TouchFactory>::get(); |
-} |
- |
-TouchFactory::TouchFactory() |
- : touch_device_lookup_(), |
- touch_device_list_() { |
-} |
- |
-void TouchFactory::SetTouchDeviceList( |
- const std::vector<unsigned int>& devices) { |
- touch_device_lookup_.reset(); |
- touch_device_list_.clear(); |
- for (std::vector<unsigned int>::const_iterator iter = devices.begin(); |
- iter != devices.end(); ++iter) { |
- DCHECK(*iter < touch_device_lookup_.size()); |
- touch_device_lookup_[*iter] = true; |
- touch_device_list_.push_back(*iter); |
- } |
-} |
- |
-bool TouchFactory::IsTouchDevice(unsigned deviceid) { |
- return deviceid < touch_device_lookup_.size() ? |
- touch_device_lookup_[deviceid] : false; |
-} |
- |
-bool TouchFactory::GrabTouchDevices(Display* display, ::Window window) { |
- if (touch_device_list_.empty()) |
- return true; |
- |
- unsigned char mask[(XI_LASTEVENT + 7) / 8]; |
- bool success = true; |
- |
- memset(mask, 0, sizeof(mask)); |
- XISetMask(mask, XI_ButtonPress); |
- XISetMask(mask, XI_ButtonRelease); |
- XISetMask(mask, XI_Motion); |
- |
- XIEventMask evmask; |
- evmask.mask_len = sizeof(mask); |
- evmask.mask = mask; |
- for (std::vector<int>::const_iterator iter = |
- touch_device_list_.begin(); |
- iter != touch_device_list_.end(); ++iter) { |
- evmask.deviceid = *iter; |
- Status status = XIGrabDevice(display, *iter, window, CurrentTime, None, |
- GrabModeAsync, GrabModeAsync, False, &evmask); |
- success = success && status == GrabSuccess; |
- } |
- |
- return success; |
-} |
- |
-bool TouchFactory::UngrabTouchDevices(Display* display) { |
- bool success = true; |
- for (std::vector<int>::const_iterator iter = |
- touch_device_list_.begin(); |
- iter != touch_device_list_.end(); ++iter) { |
- Status status = XIUngrabDevice(display, *iter, CurrentTime); |
- success = success && status == GrabSuccess; |
- } |
- return success; |
-} |
- |
-} // namespace views |