diff --git a/Sources/Kapture/CaptureController.swift b/Sources/Kapture/CaptureController.swift
index fa8557f..7c5d81f 100644
--- a/Sources/Kapture/CaptureController.swift
+++ b/Sources/Kapture/CaptureController.swift
@@ -287,6 +287,11 @@ final class CaptureController: NSObject {
let window = topmostWindowContaining(appKitPoint)
if window?.frame != hoverFrame {
hoverWindow = window
+ if let w = window {
+ CaptureController.log("hover: picked id=\(w.id) frame=\(w.frame) (tracked=\(trackedWindows.count))")
+ } else {
+ CaptureController.log("hover: none (tracked=\(trackedWindows.count))")
+ }
renderOverlays()
}
return event
@@ -463,9 +468,21 @@ final class ScreenCapture {
contentFilter: SCContentFilter(desktopIndependentWindow: scWindow),
configuration: windowConfig
) {
- CaptureController.log("capture: WINDOW id=\(windowID) image=\(windowImage.width)x\(windowImage.height) (native alpha corners)")
- completion(windowImage)
- return
+ let expectedW = CGFloat(scWindow.frame.width) * backingScale
+ let expectedH = CGFloat(scWindow.frame.height) * backingScale
+ let overflow = max(
+ CGFloat(windowImage.width) / max(expectedW, 1),
+ CGFloat(windowImage.height) / max(expectedH, 1)
+ )
+ if overflow > 1.35 {
+ // SCKit composited extra windows (owned popups etc.)
+ // — reject and use the screen crop instead.
+ CaptureController.log("capture: WINDOW id=\(windowID) overflow=\(overflow) (\(windowImage.width)x\(windowImage.height) vs \(Int(expectedW))x\(Int(expectedH))) — rejecting, using crop+mask")
+ } else {
+ CaptureController.log("capture: WINDOW id=\(windowID) image=\(windowImage.width)x\(windowImage.height) (native alpha corners)")
+ completion(windowImage)
+ return
+ }
}
CaptureController.log("capture: window filter failed for id=\(windowID) — falling back to crop+mask")
}
diff --git a/build-app.sh b/build-app.sh
index a108ddd..ff2c134 100755
--- a/build-app.sh
+++ b/build-app.sh
@@ -108,9 +108,9 @@ cat > "$APP/Contents/Info.plist" <<'PLIST'
CFBundleIconFile
Icon
CFBundleShortVersionString
- 1.8.0
+ 1.8.1
CFBundleVersion
- 80
+ 81
LSUIElement
NSHighResolutionCapable