diff --git a/index.html b/index.html
index 1ea5648..c263ae7 100644
--- a/index.html
+++ b/index.html
@@ -150,6 +150,11 @@
Check this to use character combinations to input International Phonetic Alphabet characters into
Pronunciation fields.
+
+ Use Hotkeys
+
+ Check this to enable keyboard combinations to perform different helpful actions.
+
Theme
diff --git a/src/js/hotkeys.js b/src/js/hotkeys.js
index 703ba5d..7cc7083 100644
--- a/src/js/hotkeys.js
+++ b/src/js/hotkeys.js
@@ -36,9 +36,9 @@ export function hotKeyActions(event) {
}
} break;
}
- case 'd': if (event.ctrlKey) {event.preventDefault(); toggleDetailsDisplay()} break;
- case 'e': if (event.ctrlKey) {event.preventDefault(); openEditModal()} break;
- case 'h': if (event.ctrlKey) {event.preventDefault(); showHelpModal();} break;
+ case 'd': if (event.ctrlKey) {event.preventDefault(); toggleDetailsDisplay();} break;
+ case 'e': if (event.ctrlKey) {event.preventDefault(); hideAllModals(); openEditModal();} break;
+ case 'h': if (event.ctrlKey) {event.preventDefault(); hideAllModals(); showHelpModal();} break;
case 'm': if (event.ctrlKey) {event.preventDefault(); maximizeTextarea();} break;
case 's': {
if (event.ctrlKey) {
@@ -52,7 +52,7 @@ export function hotKeyActions(event) {
}
break;
}
- case 'S': if (event.ctrlKey) { event.preventDefault(); hideAllModals(); openSettingsModal(); } break;
+ case 'S': if (event.ctrlKey) {event.preventDefault(); hideAllModals(); openSettingsModal();} break;
case 'x': if (event.ctrlKey) {event.preventDefault(); clearSearchText();} break;
}
}
diff --git a/src/js/settings.js b/src/js/settings.js
index 21baa80..0979120 100644
--- a/src/js/settings.js
+++ b/src/js/settings.js
@@ -3,6 +3,7 @@ import { cloneObject } from "../helpers";
import { usePhondueDigraphs } from "./KeyboardFire/phondue/ipaField";
import { renderWords } from "./render";
import { addMessage } from "./utilities";
+import { enableHotKeys, disableHotKeys } from "./hotkeys";
export function loadSettings() {
const storedSettings = window.localStorage.getItem(SETTINGS_KEY);
@@ -16,17 +17,20 @@ export function saveSettings() {
}
export function openSettingsModal() {
- const { useIPAPronunciationField } = window.settings;
+ const { useIPAPronunciationField, useHotkeys } = window.settings;
document.getElementById('settingsUseIPA').checked = useIPAPronunciationField;
+ document.getElementById('settingsUseHotkeys').checked = useHotkeys;
document.getElementById('settingsModal').style.display = '';
}
export function saveSettingsModal() {
window.settings.useIPAPronunciationField = document.getElementById('settingsUseIPA').checked;
+ window.settings.useHotkeys = document.getElementById('settingsUseHotkeys').checked;
saveSettings();
+ toggleHotkeysEnabled();
toggleIPAPronunciationFields();
}
@@ -35,6 +39,13 @@ export function saveAndCloseSettingsModal() {
document.getElementById('settingsModal').style.display = 'none';
}
+export function toggleHotkeysEnabled() {
+ disableHotKeys();
+ if (window.settings.useHotkeys) {
+ enableHotKeys();
+ }
+}
+
export function toggleIPAPronunciationFields() {
const ipaButtons = document.querySelectorAll('.ipa-table-button, .ipa-field-help-button'),
ipaFields = document.querySelectorAll('.ipa-field');