Ken Thomases ken@codeweavers.com writes:
What is the plan with respect to replacing the synthesized content? As user32 currently stands, GetClipboardData() can call render_synthesized_format() which calls SetClipboardData(). After that, how do you distinguish between CF_TEXT synthesized from CF_UNICODETEXT and app-provided CF_TEXT? If an app does SetClipboardData(CF_UNICODETEXT, L"string one"), then GetClipboardData(CF_TEXT) gives "string one", then the app calls SetClipboardData(CF_UNICODETEXT, L"string two"), but GetClipboardData(CF_TEXT) still gives "string one". The same applies if it's the X11 driver making the calls to SetClipboardData() due to the X selection owner setting new data.
Will the X11 driver clear the clipboard on each update by the other X client? If so, will Wine be stealing selection ownership from the other X client each time it changes? Given multiple Wine processes, will they be competing for it?
Probably the X11 driver will request the data lazily, but yes, it would clear the clipboard when the selection changed, and assert ownership in the Win32 sense. That doesn't imply it will be stealing X11 selection ownership. It will only do that when it's the app that empties the clipboard, not the driver itself.