Always run the OS X loop even if no windows....
Always run the OS X loop even if no windows.
Otherwise this can trigger infinite Python-Icon-In-Dock bouncing.
See
#10137. I will guess that this is because application on OS X may
not have windows and still need to process events.
It may be that an alternative is to run the loop only once the first
time, but I'm unsure.
at_least_once = False
def inputhook(context):
"""Inputhook for Cocoa (NSApp)"""
NSApp = _NSApp()
window_count = msg(
msg(NSApp, n('windows')),
n('count')
)
if not window_count and not at_least_once:
at_least_once = True
return
_stop_on_read(context.fileno())
msg(NSApp, n('run'))
if not _triggered.is_set():
# app closed without firing callback,
# probably due to last window being closed.
# Run the loop manually in this case,
# since there may be events still to process (#9734)
CoreFoundation.CFRunLoopRun()
Closes
#10137