diff --git a/docs/api/power-monitor.md b/docs/api/power-monitor.md index 72c04d02ddbd6..1e94f1d25dfb4 100644 --- a/docs/api/power-monitor.md +++ b/docs/api/power-monitor.md @@ -8,11 +8,11 @@ Process: [Main](../glossary.md#main-process) The `powerMonitor` module emits the following events: -### Event: 'suspend' +### Event: 'suspend' _Linux_ _Windows_ Emitted when the system is suspending. -### Event: 'resume' +### Event: 'resume' _Linux_ _Windows_ Emitted when system is resuming. diff --git a/shell/browser/api/electron_api_power_monitor_win.cc b/shell/browser/api/electron_api_power_monitor_win.cc index 52c71d7207b7e..5ffbfc962fa01 100644 --- a/shell/browser/api/electron_api_power_monitor_win.cc +++ b/shell/browser/api/electron_api_power_monitor_win.cc @@ -73,6 +73,12 @@ LRESULT CALLBACK PowerMonitor::WndProc(HWND hwnd, Emit("unlock-screen"); } } + } else if (message == WM_POWERBROADCAST) { + if (wparam == PBT_APMRESUMEAUTOMATIC) { + Emit("resume"); + } else if (wparam == PBT_APMSUSPEND) { + Emit("suspend"); + } } return ::DefWindowProc(hwnd, message, wparam, lparam); }