fix: certain jetbrain apps windows were not shown (closes #948)

This commit is contained in:
Louis Pontoise
2021-05-12 17:28:49 +09:00
committed by lwouis
parent 25d36c8c2e
commit 5958107cd9
+4 -3
View File
@@ -85,7 +85,7 @@ extension AXUIElement {
(books(runningApp) || keynote(runningApp) || (
// CGWindowLevel == .normalWindow helps filter out iStats Pro and other top-level pop-overs, and floating windows
level == AXUIElement.normalLevel &&
jetbrainApp(runningApp, title) &&
jetbrainApp(runningApp, title, subrole) &&
([kAXStandardWindowSubrole, kAXDialogSubrole].contains(subrole) ||
openBoard(runningApp) ||
adobeAudition(runningApp, subrole) ||
@@ -100,10 +100,11 @@ extension AXUIElement {
drBetotte(runningApp))))
}
private static func jetbrainApp(_ runningApp: NSRunningApplication, _ title: String?) -> Bool {
private static func jetbrainApp(_ runningApp: NSRunningApplication, _ title: String?, _ subrole: String?) -> Bool {
// jetbrain apps sometimes generate non-windows that pass all checks in isActualWindow
// they have no title, so we can filter them out based on that
return runningApp.bundleIdentifier?.range(of: "^com\\.jetbrains\\..+?$", options: .regularExpression) == nil || (title != nil && title != "")
return runningApp.bundleIdentifier?.range(of: "^com\\.jetbrains\\..+?$", options: .regularExpression) == nil ||
(subrole == kAXStandardWindowSubrole || title != nil && title != "")
}
private static func keynote(_ runningApp: NSRunningApplication) -> Bool {