diff --git a/src/scripts/app.ts b/src/scripts/app.ts index 051b76048..9c152d4be 100644 --- a/src/scripts/app.ts +++ b/src/scripts/app.ts @@ -1457,7 +1457,9 @@ export class ComfyApp { }) return } else { - console.error('Invalid workflow structure, trying parameters fallback') + console.error( + 'Invalid workflow structure, trying parameters fallback' + ) this.showErrorOnFileLoad(file) } } catch (err) { diff --git a/src/workbench/eventHelpers.ts b/src/workbench/eventHelpers.ts index c6ffbac13..ab494a23d 100644 --- a/src/workbench/eventHelpers.ts +++ b/src/workbench/eventHelpers.ts @@ -3,6 +3,14 @@ import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' * Utility functions for handling workbench events */ +/** + * Check if there is selected text in the document. + */ +function hasTextSelection(): boolean { + const selection = window.getSelection() + return selection !== null && selection.toString().trim().length > 0 +} + /** * Used by clipboard handlers to determine if copy/paste events should be * intercepted for graph operations vs. allowing default browser behavior @@ -12,7 +20,7 @@ import { useCanvasStore } from '@/renderer/core/canvas/canvasStore' * @returns true if copy paste events will be handled by target */ export function shouldIgnoreCopyPaste(target: EventTarget | null): boolean { - return ( + const isTextInput = target instanceof HTMLTextAreaElement || (target instanceof HTMLInputElement && ![ @@ -26,7 +34,6 @@ export function shouldIgnoreCopyPaste(target: EventTarget | null): boolean { 'reset', 'search', 'submit' - ].includes(target.type)) || - useCanvasStore().linearMode - ) + ].includes(target.type)) + return isTextInput || useCanvasStore().linearMode || hasTextSelection() }