diff --git a/frontend/src/canvas/SelectionManager.ts b/frontend/src/canvas/SelectionManager.ts index 975b9d8..bba038a 100644 --- a/frontend/src/canvas/SelectionManager.ts +++ b/frontend/src/canvas/SelectionManager.ts @@ -85,6 +85,7 @@ export class SelectionManager { private _onDoubleClickText: ((item: SceneItem) => void) | null = null; private _onDoubleClickImage: ((item: SceneItem) => void) | null = null; + private _onDoubleClickMarkdown: ((item: SceneItem) => void) | null = null; private _enabled = true; @@ -168,6 +169,11 @@ export class SelectionManager { this._onDoubleClickImage = fn; } + /** Called on double-click of a markdown item (for edit mode). */ + set onDoubleClickMarkdown(fn: (item: SceneItem) => void) { + this._onDoubleClickMarkdown = fn; + } + /** Select only this item, deselecting everything else. */ selectOnly(id: string): void { this.selectedIds.clear(); @@ -393,6 +399,8 @@ export class SelectionManager { this._onDoubleClickText?.(item); } else if (item.type === 'image' || item.type === 'drawing') { this._onDoubleClickImage?.(item); + } else if (item.type === 'markdown') { + this._onDoubleClickMarkdown?.(item); } this._lastClickTime = 0; this._lastClickItemId = null; diff --git a/frontend/src/hooks/useCanvasSetup.ts b/frontend/src/hooks/useCanvasSetup.ts index d83fbb0..badfc36 100644 --- a/frontend/src/hooks/useCanvasSetup.ts +++ b/frontend/src/hooks/useCanvasSetup.ts @@ -158,6 +158,14 @@ export function useCanvasSetup(deps: CanvasSetupDeps) { }); }; + // Double-click markdown → enter edit mode + selection.onDoubleClickMarkdown = (item) => { + if (mdOverlayRef.current) { + mdOverlayRef.current.setEditing(item.id); + selection.setEnabled(false); + } + }; + // Refresh transform box when item dimensions change (e.g. video metadata loaded) scene.onItemDimensionsChanged = (itemId: string) => { if (selection.selectedIds.has(itemId)) {