mirror of https://github.com/keeweb/keeweb
fix #422: lock on mac lock
parent
a3456b2941
commit
6163fa4ba8
|
@ -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",
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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() {
|
||||
|
|
Loading…
Reference in New Issue