diff --git a/owocr/run.py b/owocr/run.py index e407527..f2fbe0d 100644 --- a/owocr/run.py +++ b/owocr/run.py @@ -494,7 +494,7 @@ def signal_handler(sig, frame): def on_window_closed(alive): global terminated if not (alive or terminated): - logger.info('Window closed, terminated!') + logger.info('Window closed or error occurred, terminated!') terminated = True @@ -999,7 +999,10 @@ def run(read_from=None, cg_image = CGWindowListCreateImageFromArray(CGRectNull, [window_id], kCGWindowImageBoundsIgnoreFraming) else: capture_macos_window_screenshot(window_id) - cg_image = screencapturekit_queue.get() + try: + cg_image = screencapturekit_queue.get(timeout=0.5) + except queue.Empty: + cg_image = None if not cg_image: on_window_closed(False) break