Desktop 'lock' fix: the window no longer steals focus when a full-screen game owns the foreground at launch. Opening after an exclusive-fullscreen game (creator's THE DIVISION 2 gameplay-stream start) the window ACTIVATED by default, Windows dropped the game to the taskbar and the 1920x1040 window covered the whole work area - 'the desktop is locked and I can't reach the game with the mouse'. MainWindow ctor now sets ShowActivated = !MainViewModel.FullscreenGameRunningNow (GetForegroundFullScreenMonitorIndex() != null), so an in-game launch keeps the game focused and live; a normal launch is unchanged. New FullScreenDetectorOverride test seam (mirrors WindowEnumeratorOverride - deterministic, no real Win32 foreground state) + DesktopLockTests: game at launch -> ShowActivated=false, normal launch -> true, FullscreenGameRunningNow reflects the detector. 422 pass / 1 known env flake, 0 build warnings. (Unit: launch focus)

This commit is contained in:
2026-10-10 11:52:17 -07:00
parent c2d64dcd6d
commit 63bf8444bd
6 changed files with 221 additions and 4 deletions
+18
View File
@@ -1,5 +1,23 @@
# Bugs
## Desktop "locked" after the app starts while a fullscreen game is running (FIXED 2026-10-10)
Report: once the app is started, the desktop is "locked" — the mouse can no longer interact with it —
which made streaming live gameplay impossible.
Root cause: at launch the main window **activates** (WPF default `ShowActivated=true`). If the creator
is already playing an exclusive-fullscreen game (e.g. THE DIVISION 2 while starting a gameplay stream),
activating LlamaCasty makes Windows drop that game to the taskbar; the app's 1920×1040 window then sits
over the whole work area, so the desktop looks locked and the game can't be reached with the mouse.
Fix (same commit as this entry): the window no longer steals focus when a full-screen game owns the
foreground at launch — `MainWindow.xaml.cs` ctor sets `ShowActivated = !_viewModel.FullscreenGameRunningNow`,
and the new `MainViewModel.FullscreenGameRunningNow` (initially added in `MainViewModel.Background.cs`)
wraps `GetForegroundFullScreenMonitorIndex() != null`. Result: opening the app while in-game leaves the
game focused and alive; opening it normally behaves exactly as before.
Verification: build clean (0 warnings). Real-app reproduction/test launch deferred until the creator is
off-mouse — the real-mouse + fullscreen-detector tests must not run while a game owns the screen.
## iTunes music showing on mic meter
Playing music via iTunes causes the mic meter to show audio levels. The WASAPI
mic capture (`DataFlow.Capture`) and loopback capture (`DataFlow.Loopback`) are