diff --git a/Rectangle/Defaults.swift b/Rectangle/Defaults.swift index 13bd295..19bb47f 100644 --- a/Rectangle/Defaults.swift +++ b/Rectangle/Defaults.swift @@ -86,6 +86,7 @@ class Defaults { static let doubleClickTitleBar = IntDefault(key: "doubleClickTitleBar") static let doubleClickTitleBarRestore = OptionalBoolDefault(key: "doubleClickTitleBarRestore") static let doubleClickTitleBarIgnoredApps = JSONDefault<[String]>(key: "doubleClickTitleBarIgnoredApps") + static let doubleClickToolBarIgnoredApps = JSONDefault>(key: "doubleClickTitleBarIgnoredApps", defaultValue: ["epp.package.java"]) static let ignoreDragSnapToo = OptionalBoolDefault(key: "ignoreDragSnapToo") static let systemWideMouseDown = OptionalBoolDefault(key: "systemWideMouseDown") static let systemWideMouseDownApps = JSONDefault>(key:"systemWideMouseDownApps", defaultValue: Set(["org.languagetool.desktop", "com.microsoft.teams2"])) diff --git a/Rectangle/TitleBarManager.swift b/Rectangle/TitleBarManager.swift index ce9ff79..30f5717 100644 --- a/Rectangle/TitleBarManager.swift +++ b/Rectangle/TitleBarManager.swift @@ -45,8 +45,20 @@ class TitleBarManager { return } lastEventNumber = event.eventNumber + + var bundleIdentifier: String? + if let pid = element.pid { + bundleIdentifier = NSRunningApplication(processIdentifier: pid)?.bundleIdentifier + } + if let toolbarFrame = windowElement.getChildElement(.toolbar)?.frame, toolbarFrame != .null { - titleBarFrame = titleBarFrame.union(toolbarFrame) + if let bundleIdentifier, + let toolbarIgnoredIds = Defaults.doubleClickToolBarIgnoredApps.typedValue, + toolbarIgnoredIds.contains(bundleIdentifier) { + // don't add the toolbar frame to the title bar + } else { + titleBarFrame = titleBarFrame.union(toolbarFrame) + } } guard titleBarFrame.contains(location), @@ -54,11 +66,9 @@ class TitleBarManager { else { return } - if let ignoredApps = Defaults.doubleClickTitleBarIgnoredApps.typedValue, - !ignoredApps.isEmpty, - let pid = element.pid, - let appId = NSRunningApplication(processIdentifier: pid)?.bundleIdentifier, - ignoredApps.contains(appId) { + if let bundleIdentifier, + let ignoredApps = Defaults.doubleClickTitleBarIgnoredApps.typedValue, + ignoredApps.contains(bundleIdentifier) { return } if Defaults.doubleClickTitleBarRestore.enabled != false,