diff --git a/src/lib/platform/XWindowsClipboard.cpp b/src/lib/platform/XWindowsClipboard.cpp index b2c17f96..787e5cf8 100644 --- a/src/lib/platform/XWindowsClipboard.cpp +++ b/src/lib/platform/XWindowsClipboard.cpp @@ -1339,6 +1339,12 @@ XWindowsClipboard::CICCCMGetClipboard::readClipboard(Display* display, // process events if any otherwise sleep if (noWait || XPending(display) > 0) { while (!m_done && !m_failed && (noWait || XPending(display) > 0)) { + // fail if timeout has expired + if (timeout.getTime() >= s_timeout) { + m_failed = true; + break; + } + XNextEvent(display, &xevent); if (!processEvent(display, &xevent)) { // not processed so save it