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