Lightcord/modules/discord_desktop_core/core/app/discord_native/browser/powerMonitor.js

38 lines
980 B
JavaScript
Raw Normal View History

2020-12-12 11:56:28 +01:00
"use strict";
2020-06-06 12:51:51 +02:00
const electron = require('electron');
const {
POWER_MONITOR_RESUME,
POWER_MONITOR_SUSPEND,
POWER_MONITOR_LOCK_SCREEN,
POWER_MONITOR_UNLOCK_SCREEN,
POWER_MONITOR_GET_SYSTEM_IDLE_TIME
} = require('../common/constants').IPCEvents;
2020-12-12 11:56:28 +01:00
electron.ipcMain.handle(POWER_MONITOR_GET_SYSTEM_IDLE_TIME, async _ => {
return electron.powerMonitor.getSystemIdleTime() * 1000;
});
2020-06-06 12:51:51 +02:00
function sendToAllWindows(channel) {
electron.BrowserWindow.getAllWindows().forEach(win => {
const contents = win.webContents;
2020-12-12 11:56:28 +01:00
2020-06-06 12:51:51 +02:00
if (contents != null) {
contents.send(channel);
}
});
}
electron.powerMonitor.on('resume', () => {
sendToAllWindows(POWER_MONITOR_RESUME);
});
electron.powerMonitor.on('suspend', () => {
sendToAllWindows(POWER_MONITOR_SUSPEND);
});
electron.powerMonitor.on('lock-screen', () => {
sendToAllWindows(POWER_MONITOR_LOCK_SCREEN);
});
electron.powerMonitor.on('unlock-screen', () => {
sendToAllWindows(POWER_MONITOR_UNLOCK_SCREEN);
});