mirror of https://github.com/keeweb/keeweb.git
fix idle timer
This commit is contained in:
parent
74ec3992d1
commit
6dbd93e4ce
|
@ -4,23 +4,22 @@ const Backbone = require('backbone');
|
|||
const AppSettingsModel = require('../models/app-settings-model');
|
||||
|
||||
let IdleTracker = {
|
||||
idleTimeout: 0,
|
||||
actionTime: Date.now(),
|
||||
init: function() {
|
||||
this.scheduleLock();
|
||||
setInterval(this.checkIdle.bind(this), 1000 * 60);
|
||||
},
|
||||
scheduleLock() {
|
||||
let idleMinutes = AppSettingsModel.instance.get('idleMinutes');
|
||||
if (this.idleTimeout) {
|
||||
clearTimeout(this.idleTimeout);
|
||||
checkIdle: function() {
|
||||
let idleMinutes = (Date.now() - this.actionTime) / 1000 / 60;
|
||||
let maxIdleMinutes = AppSettingsModel.instance.get('idleMinutes');
|
||||
if (maxIdleMinutes && idleMinutes > maxIdleMinutes) {
|
||||
Backbone.trigger('user-idle');
|
||||
}
|
||||
this.idleTimeout = setTimeout(this.triggerIdle, idleMinutes * 60 * 1000);
|
||||
},
|
||||
triggerIdle() {
|
||||
Backbone.trigger('user-idle');
|
||||
},
|
||||
regUserAction() {
|
||||
this.scheduleLock();
|
||||
regUserAction: function() {
|
||||
this.actionTime = Date.now();
|
||||
}
|
||||
};
|
||||
|
||||
Backbone.on('power-monitor-resume', IdleTracker.checkIdle, IdleTracker);
|
||||
|
||||
module.exports = IdleTracker;
|
||||
|
|
|
@ -42,6 +42,7 @@ app.on('ready', () => {
|
|||
setAppOptions();
|
||||
createMainWindow();
|
||||
setGlobalShortcuts();
|
||||
subscribePowerEvents();
|
||||
}
|
||||
});
|
||||
app.on('open-file', (e, path) => {
|
||||
|
@ -293,3 +294,12 @@ function setGlobalShortcuts() {
|
|||
} catch (e) {}
|
||||
});
|
||||
}
|
||||
|
||||
function subscribePowerEvents() {
|
||||
electron.powerMonitor.on('suspend', () => {
|
||||
emitBackboneEvent('power-monitor-suspend');
|
||||
});
|
||||
electron.powerMonitor.on('resume', () => {
|
||||
emitBackboneEvent('power-monitor-resume');
|
||||
});
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue