Make overlay panels activating so clicks are received

The session log showed active=false after every activation attempt on
macOS 26: cooperative activation is denied for LSUIElement apps, and an
inactive app's panels let clicks fall through to the windows below.
Remove .nonactivatingPanel so showing the overlay activates the app
(previous app focus is restored after capture as before).

💘 Generated with Crush

Assisted-by: Crush:deepseek-v4-flash-0731
This commit is contained in:
2026-09-09 11:46:45 +08:00
parent 457e303152
commit e22bcb99c4
2 changed files with 6 additions and 7 deletions
+4 -5
View File
@@ -61,11 +61,10 @@ final class CaptureController: NSObject {
} }
isSelecting = true isSelecting = true
previousApp = NSWorkspace.shared.frontmostApplication previousApp = NSWorkspace.shared.frontmostApplication
// Force activation: cooperative NSApp.activate() can silently fail for // Force activation and log whether it stuck — inactive apps don't
// LSUIElement apps, leaving the app inactive — then clicks on the // receive overlay clicks.
// overlays pass through to the windows below. let activated = NSApp.activate(ignoringOtherApps: true)
NSApp.activate(ignoringOtherApps: true) CaptureController.log("begin: activate(ignoringOtherApps)=\(activated) active=\(NSApp.isActive)")
CaptureController.log("begin: creating overlays for \(NSScreen.screens.count) screens")
overlays = NSScreen.screens.map { screen in overlays = NSScreen.screens.map { screen in
OverlayWindow( OverlayWindow(
screen: screen, screen: screen,
+2 -2
View File
@@ -108,9 +108,9 @@ cat > "$APP/Contents/Info.plist" <<'PLIST'
<key>CFBundleIconFile</key> <key>CFBundleIconFile</key>
<string>Icon</string> <string>Icon</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>1.6.2</string> <string>1.6.3</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>62</string> <string>63</string>
<key>LSUIElement</key> <key>LSUIElement</key>
<true/> <true/>
<key>NSHighResolutionCapable</key> <key>NSHighResolutionCapable</key>