[Spice-devel] [PATCH vdagent-win 4/6] vdagent: log unsupported grabbed clipboard formats
Arnon Gilboa
agilboa at redhat.com
Mon Mar 18 06:42:02 PDT 2013
rhbz #919451 debugging, useful anyway
---
vdagent/vdagent.cpp | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/vdagent/vdagent.cpp b/vdagent/vdagent.cpp
index b5d65cd..e20c830 100644
--- a/vdagent/vdagent.cpp
+++ b/vdagent/vdagent.cpp
@@ -914,13 +914,16 @@ bool VDAgent::write_message(uint32_t type, uint32_t size = 0, void* data = NULL)
void VDAgent::on_clipboard_grab()
{
- uint32_t* types = new uint32_t[clipboard_formats_count * VD_CLIPBOARD_FORMAT_MAX_TYPES];
+ uint32_t types[clipboard_formats_count * VD_CLIPBOARD_FORMAT_MAX_TYPES];
int count = 0;
if (!VD_AGENT_HAS_CAPABILITY(_client_caps, _client_caps_size,
VD_AGENT_CAP_CLIPBOARD_BY_DEMAND)) {
return;
}
+ if (CountClipboardFormats() == 0) {
+ return;
+ }
for (unsigned int i = 0; i < clipboard_formats_count; i++) {
if (IsClipboardFormatAvailable(clipboard_formats[i].format)) {
for (uint32_t* ptype = clipboard_formats[i].types; *ptype; ptype++) {
@@ -932,9 +935,11 @@ void VDAgent::on_clipboard_grab()
write_message(VD_AGENT_CLIPBOARD_GRAB, count * sizeof(types[0]), types);
set_clipboard_owner(owner_guest);
} else {
- vd_printf("Unsupported clipboard format");
+ UINT format = 0;
+ while (format = EnumClipboardFormats(format)) {
+ vd_printf("Unsupported clipboard format %u", format);
+ }
}
- delete[] types;
}
// In delayed rendering, Windows requires us to SetClipboardData before we return from
--
1.7.7.6
More information about the Spice-devel
mailing list