On OSX the finder will return from an open() event before the application

has actually entered its event loop. As a stopgap, allow for a 10 second
grace period.
This commit is contained in:
Jack Jansen 2003-03-28 23:42:37 +00:00
parent d4885f87fa
commit d6ab153e5a
1 changed files with 12 additions and 0 deletions

View File

@ -26,12 +26,16 @@ from Carbon import AE
from Carbon import AppleEvents
import MacOS
import sys
import time
from aetypes import *
from aepack import packkey, pack, unpack, coerce, AEDescType
Error = 'aetools.Error'
# Amount of time to wait for program to be launched
LAUNCH_MAX_WAIT_TIME=10
# Special code to unpack an AppleEvent (which is *not* a disguised record!)
# Note by Jack: No??!? If I read the docs correctly it *is*....
@ -174,6 +178,14 @@ class TalkTo:
self.send('ascr', 'noop')
except AE.Error:
_launch(self.target_signature)
for i in range(LAUNCH_MAX_WAIT_TIME):
try:
self.send('ascr', 'noop')
except AE.Error:
pass
else:
break
time.sleep(1)
def start(self):
"""Deprecated, used _start()"""