[client] spice: update to support sending clipboard type list

This commit is contained in:
Geoffrey McRae 2021-05-30 11:37:15 +10:00
parent 118d9a086e
commit 28640295f1
3 changed files with 20 additions and 7 deletions

View File

@ -78,7 +78,8 @@ void app_glSwapBuffers(void);
#endif #endif
void app_clipboardRelease(void); void app_clipboardRelease(void);
void app_clipboardNotify(const LG_ClipboardData type, size_t size); void app_clipboardNotifyTypes(const LG_ClipboardData types[], int count);
void app_clipboardNotifySize(const LG_ClipboardData type, size_t size);
void app_clipboardData(const LG_ClipboardData type, uint8_t * data, size_t size); void app_clipboardData(const LG_ClipboardData type, uint8_t * data, size_t size);
void app_clipboardRequest(const LG_ClipboardReplyFn replyFn, void * opaque); void app_clipboardRequest(const LG_ClipboardReplyFn replyFn, void * opaque);

View File

@ -126,7 +126,22 @@ void app_clipboardRelease(void)
spice_clipboard_release(); spice_clipboard_release();
} }
void app_clipboardNotify(const LG_ClipboardData type, size_t size) void app_clipboardNotifyTypes(const LG_ClipboardData types[], int count)
{
if (count == 0)
{
spice_clipboard_release();
return;
}
SpiceDataType conv[count];
for(int i = 0; i < count; ++i)
conv[i] = cb_lgTypeToSpiceType(types[i]);
spice_clipboard_grab(conv, count);
}
void app_clipboardNotifySize(const LG_ClipboardData type, size_t size)
{ {
if (!g_params.clipboardToVM) if (!g_params.clipboardToVM)
return; return;
@ -141,9 +156,6 @@ void app_clipboardNotify(const LG_ClipboardData type, size_t size)
g_state.cbChunked = size > 0; g_state.cbChunked = size > 0;
g_state.cbXfer = size; g_state.cbXfer = size;
spice_clipboard_grab(g_state.cbType);
if (size)
spice_clipboard_data_start(g_state.cbType, size); spice_clipboard_data_start(g_state.cbType, size);
} }

@ -1 +1 @@
Subproject commit 64b58f3631dcac5175e624da78589befc99d5d28 Subproject commit bd712980f88d7d923c6d3641da5ce5385722c608