diff --git a/Sources/Kapture/CaptureController.swift b/Sources/Kapture/CaptureController.swift index b828a87..82f5306 100644 --- a/Sources/Kapture/CaptureController.swift +++ b/Sources/Kapture/CaptureController.swift @@ -329,8 +329,11 @@ final class CaptureController: NSObject { // An overlapping window from the same app means this is an // owned popup — desktopIndependentWindow would composite the // parent too, so capture the screen crop instead. + // Owned popups composite their parent even when the windows + // don't overlap, so ANY other same-app window on screen means + // crop (correct region) instead of the group composite. let ownedRisk = trackedWindows.contains { - $0.id != hover.id && $0.pid == hover.pid && $0.frame.intersects(hover.frame) + $0.id != hover.id && $0.pid == hover.pid } CaptureController.log("tap: window pick id=\(hover.id) pid=\(hover.pid) ownedRisk=\(ownedRisk) \(hover.frame)") finishWindowPick(hover.id, hover.frame, ownedRisk: ownedRisk) diff --git a/build-app.sh b/build-app.sh index af2e2d5..0062a73 100755 --- a/build-app.sh +++ b/build-app.sh @@ -108,9 +108,9 @@ cat > "$APP/Contents/Info.plist" <<'PLIST' CFBundleIconFile Icon CFBundleShortVersionString - 1.8.2 + 1.8.3 CFBundleVersion - 82 + 83 LSUIElement NSHighResolutionCapable