mirror of
https://github.com/trycua/computer.git
synced 2026-02-18 12:28:51 -06:00
Run main loop before retrieving list of running applications on MacOS
This commit is contained in:
@@ -352,7 +352,7 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler):
|
||||
"""Get all visible windows in the system."""
|
||||
try:
|
||||
windows = []
|
||||
running_apps = NSWorkspace.sharedWorkspace().runningApplications()
|
||||
running_apps = self.get_running_apps()
|
||||
|
||||
for app in running_apps:
|
||||
try:
|
||||
@@ -382,6 +382,13 @@ class MacOSAccessibilityHandler(BaseAccessibilityHandler):
|
||||
except:
|
||||
return []
|
||||
|
||||
def get_running_apps(self):
|
||||
# From NSWorkspace.runningApplications docs: https://developer.apple.com/documentation/appkit/nsworkspace/runningapplications
|
||||
# "Similar to the NSRunningApplication class’s properties, this property will only change when the main run loop runs in a common mode"
|
||||
# So we need to run the main run loop to get the latest running applications
|
||||
Foundation.CFRunLoopRunInMode(Foundation.kCFRunLoopDefaultMode, 0.1, False)
|
||||
return NSWorkspace.sharedWorkspace().runningApplications()
|
||||
|
||||
def get_ax_attribute(self, element, attribute):
|
||||
return element_attribute(element, attribute)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user