Treat any same-app window as popup risk for window capture
Owned popups composite their parent even when the windows do not
overlap, so the intersection test missed DBeaver-style floating dialogs.
Any other window from the same app now routes the pick to the screen
crop.
💘 Generated with Crush
Assisted-by: Crush:deepseek-v4-flash-0731
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user