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 0b53dc97dee0c242bc5aafa3ffb368b585cb051f..f52e407af251b0d13aceee1c470dfc50391e3b19 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_monitor/power_monitor.h" |
#include "base/win/windows_version.h" |
#include "ui/base/events/event.h" |
#include "ui/base/keycodes/keyboard_code_conversion_win.h" |
@@ -40,6 +40,10 @@ |
namespace views { |
namespace { |
+// Used to signal the power event when receiving Windows power broadcast |
+// message. |
+base::PowerMonitor::Signaler* g_power_signaler = NULL; |
+ |
// MoveLoopMouseWatcher is used to determine if the user canceled or completed a |
// move. win32 doesn't appear to offer a way to determine the result of a move, |
// so we install hooks to determine if we got a mouse up and assume the move |
@@ -385,6 +389,8 @@ HWNDMessageHandler::HWNDMessageHandler(HWNDMessageHandlerDelegate* delegate) |
layered_alpha_(255), |
ALLOW_THIS_IN_INITIALIZER_LIST(paint_layered_window_factory_(this)), |
can_update_layered_window_(true) { |
+ if (g_power_signaler == NULL && base::PowerMonitor::Get()) |
+ g_power_signaler = base::PowerMonitor::Get()->GetSignalerOnce(); |
} |
HWNDMessageHandler::~HWNDMessageHandler() { |
@@ -1847,9 +1853,9 @@ 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); |
+ CHECK(!g_power_signaler); |
vandebo (ex-Chrome)
2012/10/30 20:41:24
CHECK(g_power_signaler)
vandebo (ex-Chrome)
2012/10/30 20:41:24
Wrap both of these lines in an if (base::SystemMon
Hongbo Min
2012/10/31 12:52:50
Done.
Hongbo Min
2012/10/31 12:52:50
Done.
vandebo (ex-Chrome)
2012/10/31 17:30:34
This didn't get done.
Hongbo Min
2012/11/01 09:26:57
Done.
|
+ g_power_signaler->ProcessWmPowerBroadcastMessage(power_event); |
+ |
SetMsgHandled(FALSE); |
return 0; |
} |