diff --git a/src/renderer/src/components/ExecutionReportDialog.tsx b/src/renderer/src/components/ExecutionReportDialog.tsx index 99f77f4..2bfd3ef 100644 --- a/src/renderer/src/components/ExecutionReportDialog.tsx +++ b/src/renderer/src/components/ExecutionReportDialog.tsx @@ -138,6 +138,7 @@ export const ExecutionReportDialog: React.FC = ({ triggerRef={triggerRef} isAlertDialog={isProgressing} disableEscapeKey={isProgressing} + disableBackdropClick={isProgressing} ariaDescribedBy={isProgressing ? 'execution-dialog-progress-desc' : undefined} initialFocusSelector={!isProgressing ? '.btn-report-close' : undefined} > diff --git a/src/renderer/src/components/ui/Modal.tsx b/src/renderer/src/components/ui/Modal.tsx index 39462e3..90a8cfd 100644 --- a/src/renderer/src/components/ui/Modal.tsx +++ b/src/renderer/src/components/ui/Modal.tsx @@ -28,6 +28,8 @@ interface ModalProps { isAlertDialog?: boolean /** Whether to disable escape key handling (e.g., during execution) */ disableEscapeKey?: boolean + /** Whether to disable closing when clicking on backdrop (e.g., during execution) */ + disableBackdropClick?: boolean } const sizeStyles: Record = { @@ -51,7 +53,8 @@ export function Modal({ initialFocusSelector, ariaDescribedBy, isAlertDialog = false, - disableEscapeKey = false + disableEscapeKey = false, + disableBackdropClick = false }: ModalProps): React.JSX.Element | null { const dialogRef = useRef(null) const [generatedId] = useState( @@ -87,7 +90,7 @@ export function Modal({ {/* Backdrop */}