48 lines
1.6 KiB
Diff
48 lines
1.6 KiB
Diff
|
Index: nx-x11-ubuntu/nxagent/programs/Xserver/hw/nxagent/Clipboard.c
|
||
|
===================================================================
|
||
|
--- nx-x11-ubuntu.orig/nxagent/programs/Xserver/hw/nxagent/Clipboard.c 2010-03-18 17:48:50.052435459 -0300
|
||
|
+++ nx-x11-ubuntu/nxagent/programs/Xserver/hw/nxagent/Clipboard.c 2010-03-18 17:52:04.012445465 -0300
|
||
|
@@ -166,7 +166,9 @@
|
||
|
|
||
|
if (target == XA_STRING) return True;
|
||
|
if (target == serverTEXT) return True;
|
||
|
-
|
||
|
+ /* by dimbor */
|
||
|
+ if (target == serverUTF8_STRING) return True;
|
||
|
+
|
||
|
return False;
|
||
|
}
|
||
|
|
||
|
@@ -402,7 +404,12 @@
|
||
|
lastServerProperty = X->xselectionrequest.property;
|
||
|
lastServerRequestor = X->xselectionrequest.requestor;
|
||
|
lastServerTarget = X->xselectionrequest.target;
|
||
|
- lastServerTime = X->xselectionrequest.time;
|
||
|
+
|
||
|
+ /* by dimbor */
|
||
|
+ if (lastServerTarget != XA_STRING)
|
||
|
+ lastServerTarget = serverUTF8_STRING;
|
||
|
+
|
||
|
+ lastServerTime = X->xselectionrequest.time;
|
||
|
|
||
|
x.u.u.type = SelectionRequest;
|
||
|
x.u.selectionRequest.time = GetTimeInMillis();
|
||
|
@@ -424,11 +431,12 @@
|
||
|
|
||
|
x.u.selectionRequest.selection = CurrentSelections[i].selection;
|
||
|
|
||
|
- /*
|
||
|
- * x.u.selectionRequest.target = X->xselectionrequest.target;
|
||
|
- */
|
||
|
-
|
||
|
- x.u.selectionRequest.target = XA_STRING;
|
||
|
+ /* by dimbor (idea from zahvatov) */
|
||
|
+ if (X->xselectionrequest.target != XA_STRING)
|
||
|
+ x.u.selectionRequest.target = clientUTF8_STRING;
|
||
|
+ else
|
||
|
+ x.u.selectionRequest.target = XA_STRING;
|
||
|
+
|
||
|
x.u.selectionRequest.property = clientCutProperty;
|
||
|
|
||
|
(void) TryClientEvents(lastSelectionOwner[i].client, &x, 1,
|