fix #422: lock on mac lock

This commit is contained in:
antelle 2017-06-12 21:02:16 +02:00
parent a3456b2941
commit 6163fa4ba8
4 changed files with 13 additions and 6 deletions

View File

@ -363,8 +363,7 @@
"setGenLockMinimize": "When the app is minimized",
"setGenLockCopy": "On password copy",
"setGenLockAutoType": "On auto-type",
"setGenLockOsSleep": "When the computer is put to sleep",
"setGenLockOsLockSleep": "When the computer is locked or put to sleep",
"setGenLockOrSleep": "When the computer is locked or put to sleep",
"setGenStorage": "Storage",
"setGenShowAdvanced": "Show advanced settings",
"setGenDevTools": "Show dev tools",

View File

@ -81,7 +81,6 @@ const SettingsGeneralView = Backbone.View.extend({
canMinimize: Launcher && Launcher.canMinimize(),
canDetectMinimize: !!Launcher,
canDetectOsSleep: !!Launcher,
canDetectOsLock: !!Launcher && FeatureDetector.isWindows,
canAutoType: AutoType.enabled,
lockOnMinimize: Launcher && AppSettingsModel.instance.get('lockOnMinimize'),
lockOnCopy: AppSettingsModel.instance.get('lockOnCopy'),

View File

@ -159,9 +159,7 @@
<div>
<input type="checkbox" class="settings__input input-base settings__general-lock-on-os-lock" id="settings__general-lock-on-os-lock"
{{#if lockOnOsLock}}checked{{/if}} />
<label for="settings__general-lock-on-os-lock">
{{~#if canDetectOsLock}}{{res 'setGenLockOsLockSleep'}}{{else}}{{res 'setGenLockOsSleep'}}{{/if~}}
</label>
<label for="settings__general-lock-on-os-lock">{{res 'setGenLockOrSleep'}}</label>
</div>
{{/if}}
<h2>{{res 'setGenStorage'}}</h2>

View File

@ -16,6 +16,7 @@ const windowPositionFileName = path.join(userDataDir, 'window-position.json');
const appSettingsFileName = path.join(userDataDir, 'app-settings.json');
const tempUserDataPath = path.join(userDataDir, 'temp');
const tempUserDataPathRand = Date.now().toString() + Math.random().toString();
const systemNotificationIds = [];
let htmlPath = process.argv.filter(arg => arg.startsWith('--htmlpath=')).map(arg => arg.replace('--htmlpath=', ''))[0];
if (!htmlPath) {
@ -35,6 +36,10 @@ app.on('window-all-closed', () => {
electron.globalShortcut.unregisterAll();
electron.powerMonitor.removeAllListeners('suspend');
electron.powerMonitor.removeAllListeners('resume');
for (const id of systemNotificationIds) {
electron.systemPreferences.unsubscribeNotification(id);
}
systemNotificationIds.length = 0;
const userDataAppFile = path.join(userDataDir, 'app.js');
delete require.cache[require.resolve('./app.js')];
require(userDataAppFile);
@ -355,6 +360,12 @@ function subscribePowerEvents() {
electron.powerMonitor.on('resume', () => {
emitBackboneEvent('power-monitor-resume');
});
if (process.platform === 'darwin') {
const id = electron.systemPreferences.subscribeNotification('com.apple.screenIsLocked', () => {
emitBackboneEvent('os-lock');
});
systemNotificationIds.push(id);
}
}
function setEnv() {