Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Unified Diff: ash/accelerators/accelerator_controller.cc

Issue 11047030: Decouple EventClientImpl and root window. Check containers on the same root window as focused windo… (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix type in event_filter_unittest Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | ash/accelerators/accelerator_table.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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();
« no previous file with comments | « no previous file | ash/accelerators/accelerator_table.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698