--- sourceforge.net/trunk/rdesktop/xclip.c 2003/09/02 09:37:17 459 +++ sourceforge.net/trunk/rdesktop/xclip.c 2003/11/03 13:22:09 542 @@ -56,7 +56,7 @@ XSendEvent(g_display, req->requestor, False, NoEventMask, &xev); } -static void +void xclip_handle_SelectionNotify(XSelectionEvent * event) { unsigned long nitems, bytes_left; @@ -129,10 +129,11 @@ cliprdr_send_data(NULL, 0); } -static void +void xclip_handle_SelectionRequest(XSelectionRequestEvent * event) { unsigned long nitems, bytes_left; + unsigned char *prop_return; uint32 *wanted_format; int format, res; Atom type; @@ -156,9 +157,10 @@ { res = XGetWindowProperty(g_display, event->requestor, rdesktop_clipboard_target_atom, 0, 1, True, XA_INTEGER, - &type, &format, &nitems, &bytes_left, - (unsigned char **) &wanted_format); + &type, &format, &nitems, &bytes_left, &prop_return); + wanted_format = (uint32 *) prop_return; format = (res == Success) ? *wanted_format : CF_TEXT; + /* FIXME: Need to free returned data? */ } else { @@ -170,7 +172,7 @@ /* wait for data */ } -static void +void xclip_handle_SelectionClear(void) { DEBUG_CLIPBOARD(("xclip_handle_SelectionClear\n")); @@ -179,7 +181,7 @@ cliprdr_send_text_format_announce(); } -static void +void xclip_handle_PropertyNotify(XPropertyEvent * event) { unsigned long nitems, bytes_left; @@ -215,7 +217,7 @@ void -ui_clip_format_announce(char *data, uint32 length) +ui_clip_format_announce(uint8 * data, uint32 length) { XSetSelectionOwner(g_display, primary_atom, g_wnd, g_last_gesturetime); if (XGetSelectionOwner(g_display, primary_atom) != g_wnd) @@ -236,7 +238,7 @@ void -ui_clip_handle_data(char *data, uint32 length) +ui_clip_handle_data(uint8 * data, uint32 length) { xclip_provide_selection(&selection_request, XA_STRING, 8, data, length - 1); }