mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-05-15 20:12:59 -07:00
fix(macos): validate PID and socket before reporting window as minimized
- Move PID extraction and app PID match before minimized check in windowStateFromAccessibilityAPI - Add test asserting correct validation order in get-mpv-window-macos.swift - Include new test in test:fast suite
This commit is contained in:
@@ -174,22 +174,26 @@ private func windowStateFromAccessibilityAPI() -> WindowLookupResult? {
|
||||
}
|
||||
|
||||
for window in windows {
|
||||
var minimizedRef: CFTypeRef?
|
||||
let minimizedStatus = AXUIElementCopyAttributeValue(window, kAXMinimizedAttribute as CFString, &minimizedRef)
|
||||
if minimizedStatus == .success, let minimized = minimizedRef as? Bool, minimized {
|
||||
foundMinimizedTargetWindow = true
|
||||
continue
|
||||
}
|
||||
|
||||
var windowPid: pid_t = 0
|
||||
if AXUIElementGetPid(window, &windowPid) != .success {
|
||||
continue
|
||||
}
|
||||
|
||||
if windowPid != app.processIdentifier {
|
||||
continue
|
||||
}
|
||||
|
||||
if !windowHasTargetSocket(windowPid) {
|
||||
continue
|
||||
}
|
||||
|
||||
var minimizedRef: CFTypeRef?
|
||||
let minimizedStatus = AXUIElementCopyAttributeValue(window, kAXMinimizedAttribute as CFString, &minimizedRef)
|
||||
if minimizedStatus == .success, let minimized = minimizedRef as? Bool, minimized {
|
||||
foundMinimizedTargetWindow = true
|
||||
continue
|
||||
}
|
||||
|
||||
if let geometry = geometryFromAXWindow(window) {
|
||||
return .visible(
|
||||
WindowState(
|
||||
|
||||
Reference in New Issue
Block a user