[Spice-commits] spice/vd_agent.h

Marc-André Lureau elmarco at kemper.freedesktop.org
Tue Mar 1 05:18:19 PST 2011


 spice/vd_agent.h |   26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

New commits:
commit 6eabd3f5fb2e93a9d3659be0b2ea0cf7527cc830
Author: Marc-André Lureau <marcandre.lureau at redhat.com>
Date:   Fri Feb 18 23:46:00 2011 +0100

    protocol: add clipboard selection capability
    
    Add a new capability VD_AGENT_CAP_CLIPBOARD_SELECTION.
    
    When both client and servers have this capability, the
    VDAgentClipboard* messages MUST be prepended with a uint8_t indicating
    which clipboard selection to operate + 3 bytes stuffing for alignment
    that could be used for future capabilities or extensions.
    
    A few clipboard selection are defined according to X11/Gtk scheme:
    
    - VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD: the default clipboard,
      implemented by most OS to deal with explicit Copy/Paste operations.
    
    - VD_AGENT_CLIPBOARD_SELECTION_PRIMARY: the PRIMARY clipboard, used
      for mouse selections.
    
    - VD_AGENT_CLIPBOARD_SELECTION_SECONDARY: the SECONDARY clipboard.
    
    See also:
    http://www.freedesktop.org/wiki/Specifications/ClipboardsWiki
    
    https://bugs.freedesktop.org/show_bug.cgi?id=34833

diff --git a/spice/vd_agent.h b/spice/vd_agent.h
index 43d0e7c..ec2ef27 100644
--- a/spice/vd_agent.h
+++ b/spice/vd_agent.h
@@ -125,6 +125,10 @@ enum {
 };
 
 typedef struct SPICE_ATTR_PACKED VDAgentClipboard {
+#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
+    uint8_t selection;
+    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
+#endif
     uint32_t type;
     uint8_t data[0];
 } VDAgentClipboard;
@@ -139,13 +143,28 @@ enum {
 };
 
 typedef struct SPICE_ATTR_PACKED VDAgentClipboardGrab {
+#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
+    uint8_t selection;
+    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
+#endif
     uint32_t types[0];
 } VDAgentClipboardGrab;
 
 typedef struct SPICE_ATTR_PACKED VDAgentClipboardRequest {
+#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
+    uint8_t selection;
+    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
+#endif
     uint32_t type;
 } VDAgentClipboardRequest;
 
+typedef struct SPICE_ATTR_PACKED VDAgentClipboardRelease {
+#if 0 /* VD_AGENT_CAP_CLIPBOARD_SELECTION */
+    uint8_t selection;
+    uint8_t __reserved[sizeof(uint32_t) - 1 * sizeof(uint8_t)];
+#endif
+} VDAgentClipboardRelease;
+
 enum {
     VD_AGENT_CAP_MOUSE_STATE = 0,
     VD_AGENT_CAP_MONITORS_CONFIG,
@@ -153,9 +172,16 @@ enum {
     VD_AGENT_CAP_CLIPBOARD,
     VD_AGENT_CAP_DISPLAY_CONFIG,
     VD_AGENT_CAP_CLIPBOARD_BY_DEMAND,
+    VD_AGENT_CAP_CLIPBOARD_SELECTION,
     VD_AGENT_END_CAP,
 };
 
+enum {
+    VD_AGENT_CLIPBOARD_SELECTION_CLIPBOARD = 0,
+    VD_AGENT_CLIPBOARD_SELECTION_PRIMARY,
+    VD_AGENT_CLIPBOARD_SELECTION_SECONDARY,
+};
+
 typedef struct SPICE_ATTR_PACKED VDAgentAnnounceCapabilities {
     uint32_t  request;
     uint32_t caps[0];


More information about the Spice-commits mailing list