| Index: ash/accelerators/accelerator_controller.cc
|
| diff --git a/ash/accelerators/accelerator_controller.cc b/ash/accelerators/accelerator_controller.cc
|
| index bc742c74cb6f419442a9cbb330a5129f90865cf4..2ac4e7eac500a4c44cb95413252b5b814619b1e7 100644
|
| --- a/ash/accelerators/accelerator_controller.cc
|
| +++ b/ash/accelerators/accelerator_controller.cc
|
| @@ -33,6 +33,7 @@
|
| #include "ash/system/tray/system_tray_delegate.h"
|
| #include "ash/volume_control_delegate.h"
|
| #include "ash/wm/partial_screenshot_view.h"
|
| +#include "ash/wm/power_button_controller.h"
|
| #include "ash/wm/property_util.h"
|
| #include "ash/wm/window_cycle_controller.h"
|
| #include "ash/wm/window_util.h"
|
| @@ -57,6 +58,7 @@
|
| #if defined(OS_CHROMEOS)
|
| #include "ash/display/output_configurator_animation.h"
|
| #include "base/chromeos/chromeos_version.h"
|
| +#include "base/time.h"
|
| #include "chromeos/display/output_configurator.h"
|
| #endif // defined(OS_CHROMEOS)
|
|
|
| @@ -763,10 +765,35 @@ bool AcceleratorController::PerformAction(int action,
|
| return HandleMediaPrevTrack();
|
| case POWER_PRESSED: // fallthrough
|
| case POWER_RELEASED:
|
| - // We don't do anything with these at present, but we consume them to
|
| - // prevent them from getting passed to apps -- see
|
| - // http://crbug.com/146609.
|
| - return true;
|
| +#if defined(OS_CHROMEOS)
|
| + if (!base::chromeos::IsRunningOnChromeOS()) {
|
| + // There is no powerd in linux desktop, so call the
|
| + // PowerButtonController here.
|
| + Shell::GetInstance()->power_button_controller()->
|
| + OnPowerButtonEvent(action == POWER_PRESSED, base::TimeTicks());
|
| + }
|
| +#endif
|
| + // We don't do anything with these at present on the device,
|
| + // (power button evets are reported to us from powerm via
|
| + // D-BUS), but we consume them to prevent them from getting
|
| + // passed to apps -- see http://crbug.com/146609.
|
| + return true;
|
| + case LOCK_PRESSED:
|
| + case LOCK_RELEASED:
|
| +#if defined(OS_CHROMEOS)
|
| + if (!base::chromeos::IsRunningOnChromeOS()) {
|
| + // There is no powerd in linux desktop, so call the
|
| + // PowerButtonController here.
|
| + Shell::GetInstance()->power_button_controller()->
|
| + OnLockButtonEvent(action == LOCK_PRESSED, base::TimeTicks());
|
| + return true;
|
| + }
|
| +#endif
|
| + // LOCK_PRESSED/RELEASED in debug only action that is meant for
|
| + // testing lock behavior on linux desktop. If we ever reached
|
| + // here (when you run a debug build on the device), pass it onto
|
| + // apps.
|
| + return false;
|
| #if !defined(NDEBUG)
|
| case PRINT_LAYER_HIERARCHY:
|
| return HandlePrintLayerHierarchy();
|
|
|