Index: ui/views/win/hwnd_message_handler.cc |
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc |
index d8122b09abded8dadd1a21340606d78280c8c715..02c388ea0c3df85295498f74d23b23a95759cec3 100644 |
--- a/ui/views/win/hwnd_message_handler.cc |
+++ b/ui/views/win/hwnd_message_handler.cc |
@@ -8,7 +8,7 @@ |
#include <shellapi.h> |
#include "base/bind.h" |
-#include "base/system_monitor/system_monitor.h" |
+#include "base/power_state_manager.h" |
#include "base/win/windows_version.h" |
#include "ui/base/events/event.h" |
#include "ui/base/keycodes/keyboard_code_conversion_win.h" |
@@ -1851,9 +1851,37 @@ void HWNDMessageHandler::OnPaint(HDC dc) { |
} |
LRESULT HWNDMessageHandler::OnPowerBroadcast(DWORD power_event, DWORD data) { |
- base::SystemMonitor* monitor = base::SystemMonitor::Get(); |
- if (monitor) |
- monitor->ProcessWmPowerBroadcastMessage(power_event); |
+ base::PowerStateManager* manager = base::PowerStateManager::Get(); |
vandebo (ex-Chrome)
2012/09/21 20:12:18
It's unclear exactly how we want to handle this pa
|
+ if (monitor) { |
+ base::PowerStateManager::PowerEvent power_event; |
+ switch (event_id) { |
+ case PBT_APMPOWERSTATUSCHANGE: // The power status changed. |
+ power_event = POWER_STATE_EVENT; |
+ break; |
+ case PBT_APMRESUMEAUTOMATIC: // Resume from suspend. |
+ //case PBT_APMRESUMESUSPEND: // User-initiated resume from suspend. |
+ // We don't notify for this latter event |
+ // because if it occurs it is always sent |
+ // as a second event after |
+ // PBT_APMRESUMEAUTOMATIC. |
+ power_event = RESUME_EVENT; |
+ break; |
+ case PBT_APMSUSPEND: // System has been suspended. |
+ power_event = SUSPEND_EVENT; |
+ break; |
+ default: |
+ return; |
+ |
+ // Other Power Events: |
+ // PBT_APMBATTERYLOW - removed in Vista. |
+ // PBT_APMOEMEVENT - removed in Vista. |
+ // PBT_APMQUERYSUSPEND - removed in Vista. |
+ // PBT_APMQUERYSUSPENDFAILED - removed in Vista. |
+ // PBT_APMRESUMECRITICAL - removed in Vista. |
+ // PBT_POWERSETTINGCHANGE - user changed the power settings. |
+ } |
+ manager->HandlePowerEvent(power_event); |
+ } |
SetMsgHandled(FALSE); |
return 0; |
} |