Skip to content

Commit 4bd7f98

Browse files
committed
Optionally raise a timeout exception when waiting for the clipboard to change times out under context manager.
1 parent 5dcd851 commit 4bd7f98

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

dragonfly/windows/win32_clipboard.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ def wait_for_change(cls, timeout, step=0.001, formats=None,
217217
@classmethod
218218
@contextlib.contextmanager
219219
def synchronized_changes(cls, timeout, step=0.001, formats=None,
220-
initial_clipboard=None):
220+
initial_clipboard=None, raise_exception_on_timeout=False):
221221
seq_no = win32clipboard.GetClipboardSequenceNumber()
222222
if formats and not initial_clipboard:
223223
initial_clipboard = cls(from_system=True)
@@ -226,8 +226,9 @@ def synchronized_changes(cls, timeout, step=0.001, formats=None,
226226
yield
227227
finally:
228228
# Wait for the system clipboard to change.
229-
cls._wait_for_change(timeout, step, formats, initial_clipboard,
230-
seq_no)
229+
if not cls._wait_for_change(timeout, step, formats, initial_clipboard,
230+
seq_no) and raise_exception_on_timeout:
231+
raise TimeoutError("Timed out waiting for clipboard to change.")
231232

232233
#-----------------------------------------------------------------------
233234

0 commit comments

Comments
 (0)