From 5d35daacc6e6a3e9ea7ed157f753c413a550d86b Mon Sep 17 00:00:00 2001 From: MathMan05 Date: Wed, 18 Mar 2026 22:06:10 -0500 Subject: [PATCH] fix IME input stuff --- src/webpage/index.ts | 2 ++ src/webpage/markdown.ts | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/webpage/index.ts b/src/webpage/index.ts index d2d6f03..4be6d40 100644 --- a/src/webpage/index.ts +++ b/src/webpage/index.ts @@ -233,6 +233,7 @@ if (window.location.pathname.startsWith("/channels")) { }; } async function handleEnter(event: KeyboardEvent): Promise { + if (event.isComposing) return; if (event.key === "Escape" && (images.length || thisUser.channelfocus?.replyingto)) { while (images.length) { const elm = imagesHtml.get(images.pop() as Blob) as HTMLElement; @@ -269,6 +270,7 @@ if (window.location.pathname.startsWith("/channels")) { typebox.markdown = markdown; typebox.addEventListener("keyup", handleEnter); typebox.addEventListener("keydown", (event) => { + if (event.isComposing) return; thisUser.keydown(event); if (event.key === "Enter" && !event.shiftKey && window.innerWidth > 600) { event.preventDefault(); diff --git a/src/webpage/markdown.ts b/src/webpage/markdown.ts index dfa6b6b..061b39f 100644 --- a/src/webpage/markdown.ts +++ b/src/webpage/markdown.ts @@ -1000,6 +1000,7 @@ class MarkDown { this.box = new WeakRef(box); this.onUpdate = onUpdate; box.addEventListener("keydown", (_) => { + if (_.isComposing) return; if (Error.prototype.stack !== "") return; if (_.key === "Enter") { const selection = window.getSelection() as Selection; @@ -1014,16 +1015,23 @@ class MarkDown { } }); let prevcontent = ""; - box.onkeyup = (_) => { + const gatherBoxContents = (isBackSpace: boolean) => { let content = MarkDown.gatherBoxText(box); if (content === "\n") content = ""; if (content !== prevcontent) { prevcontent = content; this.txt = content.split(""); - this.boxupdate(undefined, undefined, undefined, _.key === "Backspace"); + this.boxupdate(undefined, undefined, undefined, isBackSpace); MarkDown.gatherBoxText(box); } }; + box.onkeyup = (_) => { + if (_.isComposing) return; + gatherBoxContents(_.key === "Backspace"); + }; + box.addEventListener("compositionend", (_) => { + gatherBoxContents(false); + }); box.onpaste = (_) => { if (!_.clipboardData) return; const types = _.clipboardData.types;