Skip to content

Commit 0649880

Browse files
Nagi-ovoclaude
andcommitted
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 <noreply@anthropic.com>
1 parent 163efd2 commit 0649880

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

src/pages/content/prompt/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1072,6 +1072,12 @@ export async function startPromptManager(): Promise<{ destroy: () => void }> {
10721072

10731073
// Events
10741074
trigger.addEventListener('click', async () => {
1075+
// Suppress click after a drag gesture
1076+
if (triggerWasDragged) {
1077+
triggerWasDragged = false;
1078+
return;
1079+
}
1080+
10751081
// When changelog badge is active, open changelog modal instead of prompt manager
10761082
if (changelogBadgeActive) {
10771083
changelogBadgeActive = false;
@@ -1153,9 +1159,11 @@ export async function startPromptManager(): Promise<{ destroy: () => void }> {
11531159

11541160
// Trigger drag (always draggable)
11551161
let triggerDragStartPos: { x: number; y: number } | null = null;
1162+
let triggerWasDragged = false;
11561163
trigger.addEventListener('pointerdown', (ev: PointerEvent) => {
11571164
if (typeof ev.button === 'number' && ev.button !== 0) return;
11581165
draggingTrigger = true;
1166+
triggerWasDragged = false;
11591167
triggerDragStartPos = { x: ev.clientX, y: ev.clientY };
11601168
try {
11611169
trigger.setPointerCapture?.(ev.pointerId);
@@ -1170,6 +1178,7 @@ export async function startPromptManager(): Promise<{ destroy: () => void }> {
11701178
const dx = Math.abs(ev.clientX - triggerDragStartPos.x);
11711179
const dy = Math.abs(ev.clientY - triggerDragStartPos.y);
11721180
if (dx > 5 || dy > 5) {
1181+
triggerWasDragged = true;
11731182
const r = parseFloat((trigger.style.right || '').replace('px', '')) || 18;
11741183
const b = parseFloat((trigger.style.bottom || '').replace('px', '')) || 18;
11751184
await writeStorage(STORAGE_KEYS.triggerPos, { right: r, bottom: b });

0 commit comments

Comments
 (0)