diff options
author | Mahadevan Sreenivasan <mahadevan_sv@yahoo.com> | 2020-10-15 03:29:53 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-14 22:59:53 +0100 |
commit | d97c00f962757210d7ef617c40d4c4e3da37efb1 (patch) | |
tree | af1941d7abc1b59427bb40d31770437d67a7bc59 /src | |
parent | Add vertical style and "Always show workspace drawer" setting (#567) (diff) | |
download | ferdium-app-d97c00f962757210d7ef617c40d4c4e3da37efb1.tar.gz ferdium-app-d97c00f962757210d7ef617c40d4c4e3da37efb1.tar.zst ferdium-app-d97c00f962757210d7ef617c40d4c4e3da37efb1.zip |
Flash TaskBar (Windows) / Bounce Dock (Mac) on New Message (#1020)
- Add a new Toggle Field for Win32 and MacOS for NotifyTaskBarOnMessage in EditSettingsForm.js
- Add notifyTaskbarOnMessage under messages Array in EditSettingsScreen.js
- Update appIndicator.js to flash Windows TaskBar or Bounce the Dock on MacOS when a new message arrives
- Update en-US.json to include settings.app.form.notifyTaskBarOnMessage string
Diffstat (limited to 'src')
-rw-r--r-- | src/components/settings/settings/EditSettingsForm.js | 2 | ||||
-rw-r--r-- | src/config.js | 1 | ||||
-rw-r--r-- | src/containers/settings/EditSettingsScreen.js | 10 | ||||
-rw-r--r-- | src/electron/ipc-api/appIndicator.js | 13 | ||||
-rw-r--r-- | src/i18n/locales/en-US.json | 1 |
5 files changed, 27 insertions, 0 deletions
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index b1e9a878d..476c4f045 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -306,6 +306,8 @@ export default @observer class EditSettingsForm extends Component { | |||
306 | <Toggle field={form.$('minimizeToSystemTray')} /> | 306 | <Toggle field={form.$('minimizeToSystemTray')} /> |
307 | )} | 307 | )} |
308 | <Toggle field={form.$('privateNotifications')} /> | 308 | <Toggle field={form.$('privateNotifications')} /> |
309 | {(process.platform === 'win32' || process.platform === 'darwin') && ( | ||
310 | <Toggle field={form.$('notifyTaskBarOnMessage')} />)} | ||
309 | <Select field={form.$('navigationBarBehaviour')} /> | 311 | <Select field={form.$('navigationBarBehaviour')} /> |
310 | 312 | ||
311 | <Hr /> | 313 | <Hr /> |
diff --git a/src/config.js b/src/config.js index 8a46d8083..32996a03c 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -94,6 +94,7 @@ export const DEFAULT_APP_SETTINGS = { | |||
94 | startMinimized: false, | 94 | startMinimized: false, |
95 | minimizeToSystemTray: false, | 95 | minimizeToSystemTray: false, |
96 | privateNotifications: false, | 96 | privateNotifications: false, |
97 | notifyTaskBarOnMessage: false, | ||
97 | showDisabledServices: true, | 98 | showDisabledServices: true, |
98 | showMessageBadgeWhenMuted: true, | 99 | showMessageBadgeWhenMuted: true, |
99 | showDragArea: false, | 100 | showDragArea: false, |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 7078546f9..d87b2512e 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -59,6 +59,10 @@ const messages = defineMessages({ | |||
59 | id: 'settings.app.form.privateNotifications', | 59 | id: 'settings.app.form.privateNotifications', |
60 | defaultMessage: '!!!Don\'t show message content in notifications', | 60 | defaultMessage: '!!!Don\'t show message content in notifications', |
61 | }, | 61 | }, |
62 | notifyTaskBarOnMessage: { | ||
63 | id: 'settings.app.form.notifyTaskBarOnMessage', | ||
64 | defaultMessage: '!!!Notify TaskBar/Dock on new message', | ||
65 | }, | ||
62 | navigationBarBehaviour: { | 66 | navigationBarBehaviour: { |
63 | id: 'settings.app.form.navigationBarBehaviour', | 67 | id: 'settings.app.form.navigationBarBehaviour', |
64 | defaultMessage: '!!!Navigation bar behaviour', | 68 | defaultMessage: '!!!Navigation bar behaviour', |
@@ -230,6 +234,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e | |||
230 | startMinimized: settingsData.startMinimized, | 234 | startMinimized: settingsData.startMinimized, |
231 | minimizeToSystemTray: settingsData.minimizeToSystemTray, | 235 | minimizeToSystemTray: settingsData.minimizeToSystemTray, |
232 | privateNotifications: settingsData.privateNotifications, | 236 | privateNotifications: settingsData.privateNotifications, |
237 | notifyTaskBarOnMessage: settingsData.notifyTaskBarOnMessage, | ||
233 | navigationBarBehaviour: settingsData.navigationBarBehaviour, | 238 | navigationBarBehaviour: settingsData.navigationBarBehaviour, |
234 | sentry: settingsData.sentry, | 239 | sentry: settingsData.sentry, |
235 | hibernate: settingsData.hibernate, | 240 | hibernate: settingsData.hibernate, |
@@ -374,6 +379,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e | |||
374 | value: settings.all.app.privateNotifications, | 379 | value: settings.all.app.privateNotifications, |
375 | default: DEFAULT_APP_SETTINGS.privateNotifications, | 380 | default: DEFAULT_APP_SETTINGS.privateNotifications, |
376 | }, | 381 | }, |
382 | notifyTaskBarOnMessage: { | ||
383 | label: intl.formatMessage(messages.notifyTaskBarOnMessage), | ||
384 | value: settings.all.app.notifyTaskBarOnMessage, | ||
385 | default: DEFAULT_APP_SETTINGS.notifyTaskBarOnMessage, | ||
386 | }, | ||
377 | navigationBarBehaviour: { | 387 | navigationBarBehaviour: { |
378 | label: intl.formatMessage(messages.navigationBarBehaviour), | 388 | label: intl.formatMessage(messages.navigationBarBehaviour), |
379 | value: settings.all.app.navigationBarBehaviour, | 389 | value: settings.all.app.navigationBarBehaviour, |
diff --git a/src/electron/ipc-api/appIndicator.js b/src/electron/ipc-api/appIndicator.js index 9957ef5fc..bea8e7751 100644 --- a/src/electron/ipc-api/appIndicator.js +++ b/src/electron/ipc-api/appIndicator.js | |||
@@ -25,6 +25,19 @@ export default (params) => { | |||
25 | }); | 25 | }); |
26 | 26 | ||
27 | ipcMain.on('updateAppIndicator', (event, args) => { | 27 | ipcMain.on('updateAppIndicator', (event, args) => { |
28 | |||
29 | // Flash TaskBar for windows, bounce Dock on Mac | ||
30 | if (!app.mainWindow.isFocused()) { | ||
31 | if (params.settings.app.get('notifyTaskBarOnMessage')) { | ||
32 | if (process.platform === 'win32') { | ||
33 | app.mainWindow.flashFrame(true); | ||
34 | app.mainWindow.once('focus', () => app.mainWindow.flashFrame(false)); | ||
35 | } else if (process.platform === 'darwin') { | ||
36 | app.dock.bounce('informational'); | ||
37 | } | ||
38 | } | ||
39 | } | ||
40 | |||
28 | // Update badge | 41 | // Update badge |
29 | if (process.platform === 'darwin' | 42 | if (process.platform === 'darwin' |
30 | && typeof (args.indicator) === 'string') { | 43 | && typeof (args.indicator) === 'string') { |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 9bf4fcc15..a08dd9bb0 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -311,6 +311,7 @@ | |||
311 | "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", | 311 | "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", |
312 | "settings.app.form.predefinedTodoServer": "Todo Server", | 312 | "settings.app.form.predefinedTodoServer": "Todo Server", |
313 | "settings.app.form.privateNotifications": "Don't show message content in notifications", | 313 | "settings.app.form.privateNotifications": "Don't show message content in notifications", |
314 | "settings.app.form.notifyTaskBarOnMessage": "Notify TaskBar/Dock on new message", | ||
314 | "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", | 315 | "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", |
315 | "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", | 316 | "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", |
316 | "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", | 317 | "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", |