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:
@@ -61,11 +61,10 @@ final class CaptureController: NSObject {
|
||||
}
|
||||
isSelecting = true
|
||||
previousApp = NSWorkspace.shared.frontmostApplication
|
||||
// Force activation: cooperative NSApp.activate() can silently fail for
|
||||
// LSUIElement apps, leaving the app inactive — then clicks on the
|
||||
// overlays pass through to the windows below.
|
||||
NSApp.activate(ignoringOtherApps: true)
|
||||
CaptureController.log("begin: creating overlays for \(NSScreen.screens.count) screens")
|
||||
// Force activation and log whether it stuck — inactive apps don't
|
||||
// receive overlay clicks.
|
||||
let activated = NSApp.activate(ignoringOtherApps: true)
|
||||
CaptureController.log("begin: activate(ignoringOtherApps)=\(activated) active=\(NSApp.isActive)")
|
||||
overlays = NSScreen.screens.map { screen in
|
||||
OverlayWindow(
|
||||
screen: screen,
|
||||
|
||||
+2
-2
@@ -108,9 +108,9 @@ cat > "$APP/Contents/Info.plist" <<'PLIST'
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Icon</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.6.2</string>
|
||||
<string>1.6.3</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>62</string>
|
||||
<string>63</string>
|
||||
<key>LSUIElement</key>
|
||||
<true/>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
|
||||
Reference in New Issue
Block a user