Index: ash/common/system/chromeos/palette/palette_utils.cc |
diff --git a/ash/common/system/chromeos/palette/palette_utils.cc b/ash/common/system/chromeos/palette/palette_utils.cc |
index 28f61d308880e09c765572d6d12d1b3bfdffd1f8..f32e40c2c1d241818618e559e1a171e39fca7768 100644 |
--- a/ash/common/system/chromeos/palette/palette_utils.cc |
+++ b/ash/common/system/chromeos/palette/palette_utils.cc |
@@ -11,13 +11,29 @@ |
#include "ash/common/wm_shell.h" |
#include "ash/common/wm_window.h" |
#include "base/command_line.h" |
+#include "ui/events/devices/input_device_manager.h" |
+#include "ui/events/devices/touchscreen_device.h" |
#include "ui/gfx/geometry/point.h" |
namespace ash { |
+namespace palette_utils { |
-bool IsPaletteFeatureEnabled() { |
- return base::CommandLine::ForCurrentProcess()->HasSwitch( |
- switches::kAshEnablePalette); |
+bool HasStylusInput() { |
+ // Allow the user to force-enable by passing a switch. |
+ if (base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kAshForceEnablePalette)) { |
+ return true; |
+ } |
+ |
+ for (const ui::TouchscreenDevice& device : |
+ ui::InputDeviceManager::GetInstance()->GetTouchscreenDevices()) { |
+ if (device.is_stylus && |
+ device.type == ui::InputDeviceType::INPUT_DEVICE_INTERNAL) { |
+ return true; |
+ } |
+ } |
+ |
+ return false; |
} |
bool IsPaletteEnabledOnEveryDisplay() { |
@@ -36,4 +52,5 @@ bool PaletteContainsPointInScreen(const gfx::Point& point) { |
return false; |
} |
+} // namespace palette_utils |
} // namespace ash |