Hello! I was working on my joke project using this library and found a strange bug. The delay parameter in the write function does not work correctly on Mac OS. We don't wait every delay time before every letter input, but wait a delay before every word input.
This is very easy to fix. Like this:
def write(text, delay=0, restore_state_after=True, exact=None):
"""
...
"""
if exact is None:
exact = _platform.system() == 'Windows'
state = stash_state()
# Window's typing of unicode characters is quite efficient and should be preferred.
if exact:
for letter in text:
if letter in '\n\b':
send(letter)
else:
_os_keyboard.type_unicode(letter)
if delay: _time.sleep(delay)
else:
for letter in text:
try:
entries = _os_keyboard.map_name(normalize_name(letter))
scan_code, modifiers = next(iter(entries))
except (KeyError, ValueError):
_os_keyboard.type_unicode(letter)
# todo: We should add "if delay: _time.sleep(delay)" here.
continue
for modifier in modifiers:
press(modifier)
_os_keyboard.press(scan_code)
_os_keyboard.release(scan_code)
for modifier in modifiers:
release(modifier)
if delay:
_time.sleep(delay)
if restore_state_after:
restore_modifiers(state)
Hello! I was working on my joke project using this library and found a strange bug. The delay parameter in the write function does not work correctly on Mac OS. We don't wait every delay time before every letter input, but wait a delay before every word input.
This is very easy to fix. Like this:
Should I create a PR for this?