Hi all, While reviewing the protocol documentation, I noticed that the description of wl_data_offer could more clearly reflect the actual mediation role of the compositor in data transfer.
Current Description (problematic) `` <description summary="offer to transfer data"> A wl_data_offer represents a piece of data offered for transfer by another client (the source client). It is used by the copy-and-paste and drag-and-drop mechanisms. The offer describes the different mime types that the data can be converted to and provides the mechanism for transferring the data directly from the source client. </description> `` This could be misinterpreted as implying direct client-to-client transfer, obscuring the compositor's critical role. Proposed Revision `` <description summary="offer to transfer data"> A wl_data_offer is created by the compositor to mediate data transfer between clients. The source client interacts via wl_data_source, while the destination client uses this interface. It enables: - MIME type negotiation through the compositor - Secure data transfer orchestration - Both clipboard and drag-and-drop operations </description> `` Key Clarifications Compositor as mediator Explicitly states the compositor creates/manages wl_data_offer Matches actual implementation (Weston/wlroots) Role separation Distinguishes wl_data_source (source) and wl_data_offer (destination) Avoids "direct transfer" implication Protocol accuracy Aligns with the security model where all transfers are compositor-supervised Would appreciate feedback on whether this warrants a protocol patch. A minimal documentation update could prevent client implementation confusion. Best regards, 苏怀安