|
|
@ -67,7 +67,7 @@ static int vncOwnSelection(Atom selection);
|
|
|
|
static int vncConvertSelection(ClientPtr client, Atom selection,
|
|
|
|
static int vncConvertSelection(ClientPtr client, Atom selection,
|
|
|
|
Atom target, Atom property,
|
|
|
|
Atom target, Atom property,
|
|
|
|
Window requestor, CARD32 time,
|
|
|
|
Window requestor, CARD32 time,
|
|
|
|
const char* data);
|
|
|
|
const char* data, int len);
|
|
|
|
static int vncProcConvertSelection(ClientPtr client);
|
|
|
|
static int vncProcConvertSelection(ClientPtr client);
|
|
|
|
static void vncSelectionRequest(Atom selection, Atom target);
|
|
|
|
static void vncSelectionRequest(Atom selection, Atom target);
|
|
|
|
static int vncProcSendEvent(ClientPtr client);
|
|
|
|
static int vncProcSendEvent(ClientPtr client);
|
|
|
@ -161,7 +161,7 @@ void vncHandleClipboardAnnounce(int available)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void vncHandleClipboardData(const char* data)
|
|
|
|
void vncHandleClipboardData(const char* data, int len)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct VncDataTarget* next;
|
|
|
|
struct VncDataTarget* next;
|
|
|
|
|
|
|
|
|
|
|
@ -177,7 +177,7 @@ void vncHandleClipboardData(const char* data)
|
|
|
|
vncDataTargetHead->property,
|
|
|
|
vncDataTargetHead->property,
|
|
|
|
vncDataTargetHead->requestor,
|
|
|
|
vncDataTargetHead->requestor,
|
|
|
|
vncDataTargetHead->time,
|
|
|
|
vncDataTargetHead->time,
|
|
|
|
data);
|
|
|
|
data, len);
|
|
|
|
if (rc != Success) {
|
|
|
|
if (rc != Success) {
|
|
|
|
event.u.u.type = SelectionNotify;
|
|
|
|
event.u.u.type = SelectionNotify;
|
|
|
|
event.u.selectionNotify.time = vncDataTargetHead->time;
|
|
|
|
event.u.selectionNotify.time = vncDataTargetHead->time;
|
|
|
@ -280,7 +280,7 @@ static int vncOwnSelection(Atom selection)
|
|
|
|
static int vncConvertSelection(ClientPtr client, Atom selection,
|
|
|
|
static int vncConvertSelection(ClientPtr client, Atom selection,
|
|
|
|
Atom target, Atom property,
|
|
|
|
Atom target, Atom property,
|
|
|
|
Window requestor, CARD32 time,
|
|
|
|
Window requestor, CARD32 time,
|
|
|
|
const char* data)
|
|
|
|
const char* data, int len)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
Selection *pSel;
|
|
|
|
Selection *pSel;
|
|
|
|
WindowPtr pWin;
|
|
|
|
WindowPtr pWin;
|
|
|
@ -370,7 +370,7 @@ static int vncConvertSelection(ClientPtr client, Atom selection,
|
|
|
|
|
|
|
|
|
|
|
|
rc = dixChangeWindowProperty(serverClient, pWin, realProperty,
|
|
|
|
rc = dixChangeWindowProperty(serverClient, pWin, realProperty,
|
|
|
|
XA_STRING, 8, PropModeReplace,
|
|
|
|
XA_STRING, 8, PropModeReplace,
|
|
|
|
strlen(latin1), latin1, TRUE);
|
|
|
|
len, latin1, TRUE);
|
|
|
|
|
|
|
|
|
|
|
|
vncStrFree(latin1);
|
|
|
|
vncStrFree(latin1);
|
|
|
|
|
|
|
|
|
|
|
@ -379,7 +379,7 @@ static int vncConvertSelection(ClientPtr client, Atom selection,
|
|
|
|
} else if (target == xaUTF8_STRING) {
|
|
|
|
} else if (target == xaUTF8_STRING) {
|
|
|
|
rc = dixChangeWindowProperty(serverClient, pWin, realProperty,
|
|
|
|
rc = dixChangeWindowProperty(serverClient, pWin, realProperty,
|
|
|
|
xaUTF8_STRING, 8, PropModeReplace,
|
|
|
|
xaUTF8_STRING, 8, PropModeReplace,
|
|
|
|
strlen(data), data, TRUE);
|
|
|
|
len, data, TRUE);
|
|
|
|
if (rc != Success)
|
|
|
|
if (rc != Success)
|
|
|
|
return rc;
|
|
|
|
return rc;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
@ -424,7 +424,7 @@ static int vncProcConvertSelection(ClientPtr client)
|
|
|
|
pSel->window == wid) {
|
|
|
|
pSel->window == wid) {
|
|
|
|
rc = vncConvertSelection(client, stuff->selection,
|
|
|
|
rc = vncConvertSelection(client, stuff->selection,
|
|
|
|
stuff->target, stuff->property,
|
|
|
|
stuff->target, stuff->property,
|
|
|
|
stuff->requestor, stuff->time, NULL);
|
|
|
|
stuff->requestor, stuff->time, NULL, 0);
|
|
|
|
if (rc != Success) {
|
|
|
|
if (rc != Success) {
|
|
|
|
xEvent event;
|
|
|
|
xEvent event;
|
|
|
|
|
|
|
|
|
|
|
|