| Index: ui/base/material_design/material_design_controller.cc
|
| diff --git a/ui/base/material_design/material_design_controller.cc b/ui/base/material_design/material_design_controller.cc
|
| index f4e633612d67d606368caf25f24105ff025f85ee..5f7d777350e188c1f60f584fa0a36fb2ad5f379f 100644
|
| --- a/ui/base/material_design/material_design_controller.cc
|
| +++ b/ui/base/material_design/material_design_controller.cc
|
| @@ -27,6 +27,8 @@ namespace ui {
|
|
|
| bool MaterialDesignController::is_mode_initialized_ = false;
|
|
|
| +bool MaterialDesignController::mode_initialized_by_switch_ = false;
|
| +
|
| MaterialDesignController::Mode MaterialDesignController::mode_ =
|
| MaterialDesignController::Mode::NON_MATERIAL;
|
|
|
| @@ -41,6 +43,8 @@ void MaterialDesignController::Initialize() {
|
| base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
|
| switches::kTopChromeMD);
|
|
|
| + mode_initialized_by_switch_ = true;
|
| +
|
| if (switch_value == switches::kTopChromeMDMaterial) {
|
| SetMode(Mode::MATERIAL_NORMAL);
|
| } else if (switch_value == switches::kTopChromeMDMaterialHybrid) {
|
| @@ -53,12 +57,30 @@ void MaterialDesignController::Initialize() {
|
| << "' for command line switch '" << switches::kTopChromeMD
|
| << "'.";
|
| }
|
| + mode_initialized_by_switch_ = false;
|
| SetMode(DefaultMode());
|
| }
|
| #endif // !defined(ENABLE_TOPCHROME_MD)
|
| }
|
|
|
| // static
|
| +bool MaterialDesignController::DeviceListsComplete() {
|
| +#if defined(OS_CHROMEOS)
|
| + DCHECK(DeviceDataManager::HasInstance());
|
| + DCHECK(DeviceDataManager::GetInstance()->device_lists_complete());
|
| +
|
| + if (!is_mode_initialized_ || mode_initialized_by_switch_)
|
| + return false;
|
| +
|
| + if (GetTouchScreensAvailability() == TouchScreensAvailability::ENABLED &&
|
| + GetMode() == Mode::MATERIAL_NORMAL) {
|
| + mode_ = Mode::MATERIAL_HYBRID;
|
| + return true;
|
| + }
|
| +#endif // defined(OS_CHROMEOS)
|
| + return false;
|
| +}
|
| +
|
| MaterialDesignController::Mode MaterialDesignController::GetMode() {
|
| CHECK(is_mode_initialized_);
|
| return mode_;
|
| @@ -78,24 +100,6 @@ MaterialDesignController::Mode MaterialDesignController::DefaultMode() {
|
| return GetTouchScreensAvailability() == TouchScreensAvailability::ENABLED ?
|
| Mode::MATERIAL_HYBRID : Mode::MATERIAL_NORMAL;
|
| }
|
| -
|
| -#if defined(USE_OZONE)
|
| - base::FileEnumerator file_enum(
|
| - base::FilePath(FILE_PATH_LITERAL("/dev/input")), false,
|
| - base::FileEnumerator::FILES, FILE_PATH_LITERAL("event*[0-9]"));
|
| - for (base::FilePath path = file_enum.Next(); !path.empty();
|
| - path = file_enum.Next()) {
|
| - EventDeviceInfo devinfo;
|
| - int fd = open(path.value().c_str(), O_RDWR | O_NONBLOCK | O_CLOEXEC);
|
| - if (fd >= 0) {
|
| - if (devinfo.Initialize(fd, path) && devinfo.HasTouchscreen()) {
|
| - close(fd);
|
| - return Mode::MATERIAL_HYBRID;
|
| - }
|
| - close(fd);
|
| - }
|
| - }
|
| -#endif // defined(USE_OZONE)
|
| return Mode::MATERIAL_NORMAL;
|
| #elif defined(OS_LINUX)
|
| return Mode::MATERIAL_NORMAL;
|
|
|