diff --git a/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts b/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts index 3de276c84..345011327 100644 --- a/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts +++ b/blocksuite/affine/gfx/pointer/src/tools/pan-tool.ts @@ -1,4 +1,7 @@ -import { EdgelessLegacySlotIdentifier } from '@blocksuite/affine-block-surface'; +import { + DefaultTool, + EdgelessLegacySlotIdentifier, +} from '@blocksuite/affine-block-surface'; import { on } from '@blocksuite/affine-shared/utils'; import type { PointerEventState } from '@blocksuite/std'; import { BaseTool, MouseButton, type ToolOptions } from '@blocksuite/std/gfx'; @@ -64,12 +67,15 @@ export class PanTool extends BaseTool { const { toolType, options: originalToolOptions } = currentTool; const selectionToRestore = this.gfx.selection.surfaceSelections; if (!toolType) return; + // restore to DefaultTool if previous tool is CopilotTool + if (toolType.toolName === 'copilot') { + this.controller.setTool(DefaultTool); + return; + } let finalOptions: ToolOptions> | undefined = originalToolOptions; - const PRESENT_TOOL_NAME = 'frameNavigator'; - - if (toolType.toolName === PRESENT_TOOL_NAME) { + if (toolType.toolName === 'frameNavigator') { // When restoring PresentTool (frameNavigator) after a temporary pan (e.g., via middle mouse button), // set 'restoredAfterPan' to true. This allows PresentTool to avoid an unwanted viewport reset // and maintain the panned position. @@ -93,8 +99,10 @@ export class PanTool extends BaseTool { }); } - this.controller.setTool(PanTool, { - panning: true, + requestAnimationFrame(() => { + this.controller.setTool(PanTool, { + panning: true, + }); }); const dispose = on(document, 'pointerup', evt => { diff --git a/packages/frontend/core/src/blocksuite/ai/widgets/ai-panel/ai-panel.ts b/packages/frontend/core/src/blocksuite/ai/widgets/ai-panel/ai-panel.ts index 7f014b51e..7c2b3cb3e 100644 --- a/packages/frontend/core/src/blocksuite/ai/widgets/ai-panel/ai-panel.ts +++ b/packages/frontend/core/src/blocksuite/ai/widgets/ai-panel/ai-panel.ts @@ -141,10 +141,7 @@ export class AffineAIPanelWidget extends WidgetComponent { !this.contains(e.target as Node) ) { this._clickOutside(); - return true; } - - return false; }; private readonly _onKeyDown = (event: KeyboardEvent) => {