I currently use this AppleScript to try to set focus to the most recent window of a PID, in example here my pid is
tell application "System Events" set frontmost of the first process whose unix id is 450 to true end tell
This works wonderfully in that it doesn't ask for accessibility approval. The quirks though are:
- It ignores minimized windows, thus if all windows are minimized, nothing is focused
- If you have windows across multiple spaces, and last accessed window was in space X. If you are in space Y and have windows of that app in space Y, it will focus the most recently used in space Y.
- I haven't encountered it yet, but apparently people say if a window of other applications are on top of the window, it won't come to top.
I know of
perform action AXRaise however this needs accessibility api approval. My users of my addon are asking to remove this as many of them struggle with allowing the single app access, especially if the miss granting it on the first popup.
So this was done in applescript, if you know how to do it in carbon (core-foundation, core-graphics) or cocoa I can use that to.
In osx 10.9 the
AXMakeProcessTrusted was deprecated otherwise I could have used that to grant my app access without bothering users and then use
AXUIElementSetAttributeValue to bring a window to the front.
Please help Thanks