aboutsummaryrefslogtreecommitdiff
path: root/debian/patches/106_nxagent_utf8-copy-clipboard.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/106_nxagent_utf8-copy-clipboard.patch')
-rw-r--r--debian/patches/106_nxagent_utf8-copy-clipboard.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/debian/patches/106_nxagent_utf8-copy-clipboard.patch b/debian/patches/106_nxagent_utf8-copy-clipboard.patch
new file mode 100644
index 000000000..08b0c1039
--- /dev/null
+++ b/debian/patches/106_nxagent_utf8-copy-clipboard.patch
@@ -0,0 +1,45 @@
+--- a/nxagent/programs/Xserver/hw/nxagent/Clipboard.c
++++ b/nxagent/programs/Xserver/hw/nxagent/Clipboard.c
+@@ -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,