diff --git a/blocksuite/affine/widgets/drag-handle/src/watchers/drag-event-watcher.ts b/blocksuite/affine/widgets/drag-handle/src/watchers/drag-event-watcher.ts index b22d58c118..54db204e8b 100644 --- a/blocksuite/affine/widgets/drag-handle/src/watchers/drag-event-watcher.ts +++ b/blocksuite/affine/widgets/drag-handle/src/watchers/drag-event-watcher.ts @@ -1569,6 +1569,11 @@ export class DragEventWatcher { view.hideMask = false; } }, + onDrop: () => { + if (isNote && 'hideMask' in view) { + view.hideMask = false; + } + }, setDropData: () => { return { modelId: view.model.id, diff --git a/tests/blocksuite/e2e/edgeless/note/drag-handle.spec.ts b/tests/blocksuite/e2e/edgeless/note/drag-handle.spec.ts index d230ee5600..99ea5a5a46 100644 --- a/tests/blocksuite/e2e/edgeless/note/drag-handle.spec.ts +++ b/tests/blocksuite/e2e/edgeless/note/drag-handle.spec.ts @@ -149,12 +149,20 @@ test('drag handle should work across multiple notes', async ({ page }) => { await waitNextFrame(page); await assertRichTexts(page, ['456', '789', '000', '123']); - await page + const rect = await page .locator('affine-edgeless-note') .nth(1) .locator('affine-paragraph') .nth(1) - .click({ clickCount: 3 }); + .boundingBox(); + + if (!rect) { + throw new Error('Missing bounding box for the paragraph'); + } + + await page.mouse.click(rect.x + 10, rect.y + 10, { + clickCount: 2, + }); await dragHandleFromBlockToBlockBottomById(page, '3', '4'); await waitNextFrame(page); await expect(page.locator('.affine-drag-handle-container')).toBeHidden();