Merge pull request #638 from juliandescottes/nw-warning
add confirmation message when closing desktop app with unsaved changes
This commit is contained in:
commit
6f4413f353
1 changed files with 24 additions and 1 deletions
|
@ -6,15 +6,38 @@
|
|||
};
|
||||
|
||||
ns.BeforeUnloadService.prototype.init = function () {
|
||||
if (pskl.utils.Environment.detectNodeWebkit()) {
|
||||
// Add a dedicated listener to window 'close' event in nwjs environment.
|
||||
var win = require('nw.gui').Window.get();
|
||||
win.on('close', this.onNwWindowClose.bind(this, win));
|
||||
}
|
||||
|
||||
window.addEventListener('beforeunload', this.onBeforeUnload.bind(this));
|
||||
};
|
||||
|
||||
/**
|
||||
* In nw.js environment "onbeforeunload" is not triggered when closing the window.
|
||||
* Polyfill the behavior here.
|
||||
*/
|
||||
ns.BeforeUnloadService.prototype.onNwWindowClose = function (win) {
|
||||
var msg = this.onBeforeUnload();
|
||||
if (msg) {
|
||||
if (!window.confirm(msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
win.close(true);
|
||||
};
|
||||
|
||||
ns.BeforeUnloadService.prototype.onBeforeUnload = function (evt) {
|
||||
pskl.app.backupService.backup();
|
||||
if (pskl.app.savedStatusService.isDirty()) {
|
||||
var confirmationMessage = 'Your Piskel seems to have unsaved changes';
|
||||
|
||||
(evt || window.event).returnValue = confirmationMessage;
|
||||
evt = evt || window.event;
|
||||
if (evt) {
|
||||
evt.returnValue = confirmationMessage;
|
||||
}
|
||||
return confirmationMessage;
|
||||
}
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue