From 064988008b7fe83e2c49599f5f6280be5db5c462 Mon Sep 17 00:00:00 2001 From: Nagi-ovo <101612750+Nagi-ovo@users.noreply.github.com.> Date: Thu, 12 Mar 2026 12:09:54 +0000 Subject: [PATCH] fix(prompt): suppress click after dragging trigger button Add triggerWasDragged flag to prevent the click event from firing after a drag gesture on the prompt manager floating ball. Co-Authored-By: Claude Opus 4.6 --- src/pages/content/prompt/index.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pages/content/prompt/index.ts b/src/pages/content/prompt/index.ts index 9b7d1eac3..6217b3548 100644 --- a/src/pages/content/prompt/index.ts +++ b/src/pages/content/prompt/index.ts @@ -1072,6 +1072,12 @@ export async function startPromptManager(): Promise<{ destroy: () => void }> { // Events trigger.addEventListener('click', async () => { + // Suppress click after a drag gesture + if (triggerWasDragged) { + triggerWasDragged = false; + return; + } + // When changelog badge is active, open changelog modal instead of prompt manager if (changelogBadgeActive) { changelogBadgeActive = false; @@ -1153,9 +1159,11 @@ export async function startPromptManager(): Promise<{ destroy: () => void }> { // Trigger drag (always draggable) let triggerDragStartPos: { x: number; y: number } | null = null; + let triggerWasDragged = false; trigger.addEventListener('pointerdown', (ev: PointerEvent) => { if (typeof ev.button === 'number' && ev.button !== 0) return; draggingTrigger = true; + triggerWasDragged = false; triggerDragStartPos = { x: ev.clientX, y: ev.clientY }; try { trigger.setPointerCapture?.(ev.pointerId); @@ -1170,6 +1178,7 @@ export async function startPromptManager(): Promise<{ destroy: () => void }> { const dx = Math.abs(ev.clientX - triggerDragStartPos.x); const dy = Math.abs(ev.clientY - triggerDragStartPos.y); if (dx > 5 || dy > 5) { + triggerWasDragged = true; const r = parseFloat((trigger.style.right || '').replace('px', '')) || 18; const b = parseFloat((trigger.style.bottom || '').replace('px', '')) || 18; await writeStorage(STORAGE_KEYS.triggerPos, { right: r, bottom: b });