From: Ondrej Holy <oholy@xxxxxxxxxx> Seamless mode is a way to use guest applications directly on the client system desktop side-by-side with client applications. Add a new capability VD_AGENT_CAP_SEAMLESS_MODE. It indicats ability to handle following seamless mode messages. Add a message VD_AGENT_SEAMLESS_MODE. It is used to enable/disable sending VD_AGENT_SEAMLESS_MODE_LIST messages. It is sent from client to agent once the change is needed. Add a message VD_AGENT_SEAMLESS_MODE_LIST. It is used to sent a list of visible rectangle areas. It is sent periodically from agent to client with every list change. https://bugs.freedesktop.org/show_bug.cgi?id=39238 --- spice/vd_agent.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/spice/vd_agent.h b/spice/vd_agent.h index 7109ede..235f152 100644 --- a/spice/vd_agent.h +++ b/spice/vd_agent.h @@ -91,6 +91,8 @@ enum { VD_AGENT_CLIENT_DISCONNECTED, VD_AGENT_MAX_CLIPBOARD, VD_AGENT_AUDIO_VOLUME_SYNC, + VD_AGENT_SEAMLESS_MODE, + VD_AGENT_SEAMLESS_MODE_LIST, VD_AGENT_END_MESSAGE, }; @@ -247,6 +249,22 @@ typedef struct SPICE_ATTR_PACKED VDAgentAudioVolumeSync { uint16_t volume[0]; } VDAgentAudioVolumeSync; +typedef struct SPICE_ATTR_PACKED VDAgentSeamlessMode { + uint8_t enabled; +} VDAgentSeamlessMode; + +typedef struct SPICE_ATTR_PACKED VDAgentSeamlessModeWindow { + int32_t x; + int32_t y; + uint32_t w; + uint32_t h; +} VDAgentSeamlessModeWindow; + +typedef struct SPICE_ATTR_PACKED VDAgentSeamlessModeList { + uint32_t num_of_windows; + VDAgentSeamlessModeWindow windows[0]; +} VDAgentSeamlessModeList; + enum { VD_AGENT_CAP_MOUSE_STATE = 0, VD_AGENT_CAP_MONITORS_CONFIG, @@ -263,6 +281,7 @@ enum { VD_AGENT_CAP_MONITORS_CONFIG_POSITION, VD_AGENT_CAP_FILE_XFER_DISABLED, VD_AGENT_CAP_FILE_XFER_DETAILED_ERRORS, + VD_AGENT_CAP_SEAMLESS_MODE, VD_AGENT_END_CAP, }; -- 2.13.4 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel