diff --git a/src/channels/web/static/app.js b/src/channels/web/static/app.js index 081b0f3a..ceab682a 100644 --- a/src/channels/web/static/app.js +++ b/src/channels/web/static/app.js @@ -1759,7 +1759,10 @@ chatInput.addEventListener('keydown', (e) => { } } - if (e.key === 'Enter' && !e.shiftKey && !e.isComposing) { + // Safari fires compositionend before keydown, so e.isComposing is already false + // when Enter confirms IME input. keyCode 229 (VK_PROCESS) catches this case. + // See https://bugs.webkit.org/show_bug.cgi?id=165004 + if (e.key === 'Enter' && !e.shiftKey && !e.isComposing && e.keyCode !== 229) { e.preventDefault(); hideSlashAutocomplete(); sendMessage();