Index: ui/base/touch/touch_device_aurax11.cc |
diff --git a/ui/base/touch/touch_device_aurax11.cc b/ui/base/touch/touch_device_aurax11.cc |
index 52ecc75787e04ba02f3b3a9097deb4ec361cf395..73399354f575a2ec5fcbbb217306700dbc8a8d90 100644 |
--- a/ui/base/touch/touch_device_aurax11.cc |
+++ b/ui/base/touch/touch_device_aurax11.cc |
@@ -3,6 +3,7 @@ |
// found in the LICENSE file. |
#include "ui/base/touch/touch_device.h" |
+#include "base/logging.h" |
#include "ui/events/devices/x11/touch_factory_x11.h" |
namespace ui { |
@@ -15,23 +16,51 @@ int MaxTouchPoints() { |
return ui::TouchFactory::GetInstance()->GetMaxTouchPoints(); |
} |
+// FIXME: Use mouse/keyboard detection logic. crbug.com/440503 |
int GetAvailablePointerTypes() { |
- // TODO(mustaq): Replace the stub below |
- return POINTER_TYPE_NONE; |
+ // Assume there is a keyboard |
+ int available_pointer_types = POINTER_TYPE_NONE; |
sadrul
2014/12/11 15:22:27
You can look for a non-empty DeviceDataManager::ke
mustaq
2014/12/11 19:21:04
Done.
|
+ |
+ // Assume either a touch-device or a mouse is there |
+ if (IsTouchDevicePresent()) |
+ available_pointer_types |= POINTER_TYPE_COARSE; |
+ else |
+ available_pointer_types |= POINTER_TYPE_FINE; |
+ |
+ return available_pointer_types; |
} |
PointerType GetPrimaryPointerType() { |
- // TODO(mustaq): Replace the stub below |
+ int available_pointer_types = GetAvailablePointerTypes(); |
+ if (available_pointer_types & POINTER_TYPE_COARSE) |
+ return POINTER_TYPE_COARSE; |
+ if (available_pointer_types & POINTER_TYPE_FINE) |
+ return POINTER_TYPE_FINE; |
+ DCHECK(available_pointer_types & POINTER_TYPE_NONE); |
return POINTER_TYPE_NONE; |
} |
+// FIXME: Use mouse/keyboard detection logic. crbug.com/440503 |
int GetAvailableHoverTypes() { |
- // TODO(mustaq): Replace the stub below |
- return HOVER_TYPE_NONE; |
+ // Assume there is a keyboard |
+ int available_hover_types = HOVER_TYPE_NONE; |
sadrul
2014/12/11 15:22:27
ditto
mustaq
2014/12/11 19:21:04
Done.
|
+ |
+ // Assume either a touch-device or a mouse is there |
+ if (IsTouchDevicePresent()) |
+ available_hover_types |= HOVER_TYPE_ON_DEMAND; |
+ else |
+ available_hover_types |= HOVER_TYPE_HOVER; |
+ |
+ return available_hover_types; |
} |
HoverType GetPrimaryHoverType() { |
- // TODO(mustaq): Replace the stub below |
+ int available_hover_types = GetAvailableHoverTypes(); |
+ if (available_hover_types & HOVER_TYPE_ON_DEMAND) |
+ return HOVER_TYPE_ON_DEMAND; |
+ if (available_hover_types & HOVER_TYPE_HOVER) |
+ return HOVER_TYPE_HOVER; |
+ DCHECK(available_hover_types & HOVER_TYPE_NONE); |
return HOVER_TYPE_NONE; |
} |