From ee94c601936c102e7da359694c8ff9528d8994d3 Mon Sep 17 00:00:00 2001 From: Klaus Sinani Date: Sun, 20 Jan 2019 21:03:23 +0200 Subject: [PATCH] Toggle checkbox only on confirmed option update --- src/dialog.js | 3 ++- src/menu/file.js | 4 ++-- src/menu/help.js | 32 ++++++++++++++++---------------- src/menu/view.js | 4 ++-- 4 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/dialog.js b/src/dialog.js index 55d0a6b..1237b34 100644 --- a/src/dialog.js +++ b/src/dialog.js @@ -89,8 +89,9 @@ class Dialog { } } - confirmRestart() { + confirmActivationRestart(option, state) { if (this._restart() === 0) { + settings.set(option, state); app.quit(); app.relaunch(); } diff --git a/src/menu/file.js b/src/menu/file.js index dcb74fd..1462c85 100644 --- a/src/menu/file.js +++ b/src/menu/file.js @@ -173,8 +173,8 @@ module.exports = { type: 'checkbox', checked: settings.get('useGlobalShortcuts'), click(item) { - settings.set('useGlobalShortcuts', item.checked); - dialog.confirmRestart(); + dialog.confirmActivationRestart('useGlobalShortcuts', item.checked); + item.checked = settings.get('useGlobalShortcuts'); } }, { label: 'Request Exit Confirmation', diff --git a/src/menu/help.js b/src/menu/help.js index d531f4d..75a6d5b 100644 --- a/src/menu/help.js +++ b/src/menu/help.js @@ -32,34 +32,34 @@ module.exports = { { label: 'Once Every 4 Hours', type: 'checkbox', - checked: (settings.get('updateCheckPeriod') === '4'), - click() { - settings.set('updateCheckPeriod', '4'); - dialog.confirmRestart(); + checked: settings.get('updateCheckPeriod') === '4', + click(item) { + dialog.confirmActivationRestart('updateCheckPeriod', '4'); + item.checked = settings.get('updateCheckPeriod') === '4'; } }, { label: 'Once Every 8 Hours', type: 'checkbox', - checked: (settings.get('updateCheckPeriod') === '8'), - click() { - settings.set('updateCheckPeriod', '8'); - dialog.confirmRestart(); + checked: settings.get('updateCheckPeriod') === '8', + click(item) { + dialog.confirmActivationRestart('updateCheckPeriod', '8'); + item.checked = settings.get('updateCheckPeriod') === '8'; } }, { label: 'Once Every 12 Hours', type: 'checkbox', - checked: (settings.get('updateCheckPeriod') === '12'), - click() { - settings.set('updateCheckPeriod', '12'); - dialog.confirmRestart(); + checked: settings.get('updateCheckPeriod') === '12', + click(item) { + dialog.confirmActivationRestart('updateCheckPeriod', '12'); + item.checked = settings.get('updateCheckPeriod') === '12'; } }, { label: 'Once a Day', type: 'checkbox', - checked: (settings.get('updateCheckPeriod') === '24'), - click() { - settings.set('updateCheckPeriod', '24'); - dialog.confirmRestart(); + checked: settings.get('updateCheckPeriod') === '24', + click(item) { + dialog.confirmActivationRestart('updateCheckPeriod', '24'); + item.checked = settings.get('updateCheckPeriod') === '24'; } } ] diff --git a/src/menu/view.js b/src/menu/view.js index 7580de6..e9679b2 100644 --- a/src/menu/view.js +++ b/src/menu/view.js @@ -106,8 +106,8 @@ module.exports = { visible: !is.darwin, checked: settings.get('hideTray'), click(item) { - settings.set('hideTray', item.checked); - dialog.confirmRestart(); + dialog.confirmActivationRestart('hideTray', item.checked); + item.checked = settings.get('hideTray'); } }, { type: 'separator'