mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-12 07:45:38 +00:00
arboard's Wayland data-control read waits for the app that owns the clipboard to send its data with no time limit, and its X11 read waits up to 4 s for each format it tries. These reads ran on the UI thread: a Copy or Cut checking what the clipboard held, a paste, and the paste check once its background thread is gone. A clipboard owner that never sent its data froze the window. On Linux and the BSDs, arboard's reads now run on a worker thread with a clipboard handle of its own. Text and file lists wait 2 s at most and a bitmap 10 s; the core-protocol fallback's text reads already wait 2 s. While a read is unanswered, later reads fail at once. Writes stay on the UI thread's handle. The core-protocol fallback's worker is now generic and built on every platform. On X11, closing the clipboard within 25 s of a read that got no answer waits for that read to end, so the app's own handle is the last one and hands the copy to the clipboard manager. On data-control and the core protocol, closing does not wait for an unanswered read.