From ec17c085df31e875174ed40627e1290120451efb Mon Sep 17 00:00:00 2001 From: Gabi <182965942+GabiNun@users.noreply.github.com> Date: Thu, 12 Mar 2026 22:09:52 +0200 Subject: [PATCH] Fix: Prevent Win11 Creator UI reset when switching tabs during ISO Creation (#4199) * Fix: Prevent Win11 Creator UI reset when switching tabs during ISO modification * Update Invoke-WinUtilISO.ps1 --- functions/private/Invoke-WinUtilISO.ps1 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/functions/private/Invoke-WinUtilISO.ps1 b/functions/private/Invoke-WinUtilISO.ps1 index dccbf073..db7ed1ab 100644 --- a/functions/private/Invoke-WinUtilISO.ps1 +++ b/functions/private/Invoke-WinUtilISO.ps1 @@ -144,6 +144,7 @@ function Invoke-WinUtilISOModify { Write-Win11ISOLog "Selected edition: $selectedEditionName (Index $selectedWimIndex)" $sync["WPFWin11ISOModifyButton"].IsEnabled = $false + $sync["Win11ISOModifying"] = $true $existingWorkDir = Get-Item -Path (Join-Path $env:TEMP "WinUtil_Win11ISO*") -ErrorAction SilentlyContinue | Where-Object { $_.PSIsContainer } | Sort-Object LastWriteTime -Descending | Select-Object -First 1 @@ -303,6 +304,7 @@ function Invoke-WinUtilISOModify { }) } finally { Start-Sleep -Milliseconds 800 + $sync["Win11ISOModifying"] = $false $sync["WPFWin11ISOStatusLog"].Dispatcher.Invoke([action]{ $sync.progressBarTextBlock.Text = "" $sync.progressBarTextBlock.ToolTip = "" @@ -323,6 +325,11 @@ function Invoke-WinUtilISOModify { function Invoke-WinUtilISOCheckExistingWork { if ($sync["Win11ISOContentsDir"] -and (Test-Path $sync["Win11ISOContentsDir"])) { return } + # Check if ISO modification is currently in progress + if ($sync["Win11ISOModifying"]) { + return + } + $existingWorkDir = Get-Item -Path (Join-Path $env:TEMP "WinUtil_Win11ISO*") -ErrorAction SilentlyContinue | Where-Object { $_.PSIsContainer } | Sort-Object LastWriteTime -Descending | Select-Object -First 1