#endif
// Must use a different display handle to send events.
Display *display = BC_WindowBase::init_display(display_name);
- XEvent event;
+ XEvent event; memset(&event, 0, sizeof(event));
XClientMessageEvent *ptr = (XClientMessageEvent*)&event;
event.type = ClientMessage;
else if (request->target == targets_atom)
success = handle_request_targets(request);
- XEvent reply;
+ XEvent reply; memset(&reply, 0, sizeof(reply));
// 'None' tells the client that the request was denied
reply.xselection.property = success ? request->property : None;
reply.xselection.type = SelectionNotify;
#endif
// Store in local buffer
- if(this->data[clipboard_num] && length[clipboard_num] != len + 1)
+ if(this->data[clipboard_num] && length[clipboard_num] != len)
{
delete [] this->data[clipboard_num];
this->data[clipboard_num] = 0;
{
length[clipboard_num] = len;
this->data[clipboard_num] = new char[len + 1];
- memcpy(this->data[clipboard_num], data, len);
- this->data[clipboard_num][len] = 0;
}
+ memcpy(this->data[clipboard_num], data, len);
+ this->data[clipboard_num][len] = 0;
+
if(clipboard_num == PRIMARY_SELECTION)
{
XSetSelectionOwner(out_display,
#else
XUnlockDisplay(in_display);
#endif
-
+//int len = strlen(data);
+//printf("BC_Clipboard::from_clipboard %d: %d '%*.*s'\n",clipboard_num,len,len,len,data);
return 0;
}