Hello @ayourk, there's nothing to ponder here until after the change is reviewed and merged upstream. After that's happened, then add a note to the compatibility report for the game and a Proton dev can consider backporting the change into Proton.
ge-proton10-10x1 2026-05ge-proton10-32x1 2026-05
Summary
Wine's OLE clipboard implementation (
dlls/ole32/clipboard.c) caches the HWND fromget_clipbrd_window()in a static local. When the STA thread that created the window terminates, the cached handle goes stale. The nextOleSetClipboardcall reuses the dead handle,SendMessageWtargets a destroyed window, and clipboard operations silently fail.This affects any Proton game or application that creates and destroys STA threads with clipboard interaction (e.g. Space Engineers, AppID 244850).
Fix
A one-line
IsWindow()guard before the cached-handle return inget_clipbrd_window(). If the cached window has been destroyed, the function falls through to the existing!clipbrd->windowbranch which creates a fresh one.System Information
Impact — ProtonDB reports
Multiple users on ProtonDB for Space Engineers (244850) report this same clipboard bug across different Proton versions and distros:
The community has been working around this with the Pulsar Plugin Loader + CosmicWineFixes plugin, but Pulsar is not allowed on official servers, making this workaround unavailable for multiplayer. The root cause is in Wine itself.
Reproduction
A standalone reproducer is attached to the Wine bug report (attachment 80543). It spawns an STA thread that calls
OleSetClipboard, exits the thread, then callsOleSetClipboardagain from the main thread — the second call fails with the stale handle.Why file here
The fix is pending upstream Wine review. Filing here for visibility so the Proton team is aware and can cherry-pick if desired before the MR lands in mainline Wine.