@@ -332,21 +332,37 @@ private async Task LoadComponentsAsync()
332332
333333 // Create MainWindow
334334 InitializeMainWindow ( ) ;
335- MainWindow . Activate ( ) ;
335+ if ( ! CoreData . WasDaemon )
336+ MainWindow . Activate ( ) ;
336337
337338 // Show crash report from the previous session on top of the loading
338339 // screen and wait for the user to dismiss it before continuing.
339340 if ( File . Exists ( CrashHandler . PendingCrashFile ) )
340341 {
341342 try
342343 {
344+ // In daemon mode the DWM/XAML threads are suspended; resume them
345+ // temporarily so the crash window can render, then re-suspend.
346+ bool resumedForCrash = CoreData . WasDaemon ;
347+ if ( resumedForCrash )
348+ {
349+ DWMThreadHelper . ChangeState_DWM ( false ) ;
350+ DWMThreadHelper . ChangeState_XAML ( false ) ;
351+ }
352+
343353 string report = File . ReadAllText ( CrashHandler . PendingCrashFile ) ;
344354 File . Delete ( CrashHandler . PendingCrashFile ) ;
345355 var tcs = new TaskCompletionSource ( ) ;
346356 var crashWindow = new CrashReportWindow ( report ) ;
347357 crashWindow . Closed += ( _ , _ ) => tcs . TrySetResult ( ) ;
348358 crashWindow . Activate ( ) ;
349359 await tcs . Task ;
360+
361+ if ( resumedForCrash )
362+ {
363+ DWMThreadHelper . ChangeState_DWM ( true ) ;
364+ DWMThreadHelper . ChangeState_XAML ( true ) ;
365+ }
350366 }
351367 catch { /* must not prevent normal startup */ }
352368 }
@@ -505,7 +521,8 @@ private async Task CheckForMissingDependencies()
505521
506522 protected override void OnLaunched ( LaunchActivatedEventArgs args )
507523 {
508- MainWindow ? . Activate ( ) ;
524+ if ( ! CoreData . WasDaemon )
525+ MainWindow ? . Activate ( ) ;
509526 }
510527
511528 public async Task ShowMainWindowFromRedirectAsync ( AppActivationArguments rawArgs )
0 commit comments