diff --git a/resources/js/components/fieldtypes/markdown/MarkdownFieldtype.vue b/resources/js/components/fieldtypes/markdown/MarkdownFieldtype.vue index 217bcfd8f6..c1f5865b73 100644 --- a/resources/js/components/fieldtypes/markdown/MarkdownFieldtype.vue +++ b/resources/js/components/fieldtypes/markdown/MarkdownFieldtype.vue @@ -537,6 +537,13 @@ export default { * Execute a keyboard shortcut, when applicable */ shortcut(e) { + // Handle ESC to blur/unfocus the editor + if (e.keyCode === 27) { + e.preventDefault(); + this.codemirror.getInputField().blur(); + return; + } + const mod = e.metaKey || e.ctrlKey; if (!mod) return; diff --git a/resources/js/components/ui/CodeEditor.vue b/resources/js/components/ui/CodeEditor.vue index 15b6a6bde4..2c52700149 100644 --- a/resources/js/components/ui/CodeEditor.vue +++ b/resources/js/components/ui/CodeEditor.vue @@ -139,6 +139,14 @@ function initCodeMirror() { codemirror.value.on('focus', () => emit('focus')); codemirror.value.on('blur', () => emit('blur')); + + codemirror.value.on('keydown', (cm, e) => { + // Handle ESC to blur/unfocus the editor + if (e.keyCode === 27) { + e.preventDefault(); + codemirror.value.getInputField().blur(); + } + }); } watch(