Force app activation on capture; log to /tmp for durable diagnostics
Cooperative NSApp.activate() can silently fail for LSUIElement apps,
leaving the app inactive so overlay clicks pass through to windows below.
Force activation with ignoringOtherApps on all OS versions. Session logs
now also append to /tmp/kapture-debug.log so they survive relaunches, and
the first window-scan result is always logged.
💘 Generated with Crush
Assisted-by: Crush:deepseek-v4-flash-0731
This commit is contained in:
@@ -61,11 +61,11 @@ final class CaptureController: NSObject {
|
|||||||
}
|
}
|
||||||
isSelecting = true
|
isSelecting = true
|
||||||
previousApp = NSWorkspace.shared.frontmostApplication
|
previousApp = NSWorkspace.shared.frontmostApplication
|
||||||
if #available(macOS 14.0, *) {
|
// Force activation: cooperative NSApp.activate() can silently fail for
|
||||||
NSApp.activate()
|
// LSUIElement apps, leaving the app inactive — then clicks on the
|
||||||
} else {
|
// overlays pass through to the windows below.
|
||||||
NSApp.activate(ignoringOtherApps: true)
|
NSApp.activate(ignoringOtherApps: true)
|
||||||
}
|
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,
|
||||||
@@ -76,6 +76,7 @@ final class CaptureController: NSObject {
|
|||||||
}
|
}
|
||||||
overlays.forEach { $0.makeKeyAndOrderFront(nil) }
|
overlays.forEach { $0.makeKeyAndOrderFront(nil) }
|
||||||
overlayIDs = overlays.map { $0.windowNumber }
|
overlayIDs = overlays.map { $0.windowNumber }
|
||||||
|
CaptureController.log("begin: \(overlays.count) overlays, ids=\(overlayIDs), active=\(NSApp.isActive)")
|
||||||
}
|
}
|
||||||
|
|
||||||
/// A window was picked from hover — capture it with rounded corners.
|
/// A window was picked from hover — capture it with rounded corners.
|
||||||
|
|||||||
+2
-2
@@ -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.1</string>
|
<string>1.6.2</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>61</string>
|
<string>62</string>
|
||||||
<key>LSUIElement</key>
|
<key>LSUIElement</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>NSHighResolutionCapable</key>
|
<key>NSHighResolutionCapable</key>
|
||||||
|
|||||||
Reference in New Issue
Block a user