From 1936d6a7b5d0781e6940b7bc5e91a7d385f11abb Mon Sep 17 00:00:00 2001 From: Forge Date: Fri, 6 Mar 2026 14:15:41 +0800 Subject: [PATCH] fix: lock stored selection during modal - prevents mouseup from resetting on Replace click --- entrypoints/content.ts | 7 +++++++ lexai-chrome-mv3.zip | Bin 71740 -> 74376 bytes 2 files changed, 7 insertions(+) diff --git a/entrypoints/content.ts b/entrypoints/content.ts index be76ab3..649fd9f 100644 --- a/entrypoints/content.ts +++ b/entrypoints/content.ts @@ -16,9 +16,13 @@ export default defineContentScript({ let storedElement: HTMLTextAreaElement | HTMLInputElement | null = null; let storedRange: Range | null = null; + // Lock flag — prevents mouseup from resetting stored selection while modal is open + let selectionLocked = false; + // ─── Selection capture (called immediately on mouseup) ──────────────────── function captureSelectionNow(): boolean { + if (selectionLocked) return true; // selection is locked — don't reset const el = document.activeElement; // 1) textarea / input — grab positions while they're still valid @@ -247,6 +251,7 @@ export default defineContentScript({ async function runAction(action: string) { if (!selectedText) return; const textToProcess = selectedText; + selectionLocked = true; // lock stored selection — modal interaction won't reset it // Guard: extension may have been reloaded/updated if (!isExtensionValid()) { @@ -404,6 +409,7 @@ export default defineContentScript({ replaceBtn.addEventListener('mousedown', (e) => e.preventDefault()); // keep stored selection intact replaceBtn.addEventListener('click', () => { replaceText(resultText); + selectionLocked = false; // unlock after replace overlay.remove(); modal!.remove(); modal = null; @@ -443,6 +449,7 @@ export default defineContentScript({ cursor: 'pointer', }); dismissBtn.addEventListener('click', () => { + selectionLocked = false; // unlock on dismiss overlay.remove(); modal!.remove(); modal = null; diff --git a/lexai-chrome-mv3.zip b/lexai-chrome-mv3.zip index 6e7b9ae9c9ce3c08dfed3a99d20329c2b882ae0f..274bb8727c42dc7a5cacfc62cdadce89bdf0c2ca 100644 GIT binary patch delta 7609 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