diff options
Diffstat (limited to 'debian/patches/106_nxagent_utf8-copy-clipboard.patch')
-rw-r--r-- | debian/patches/106_nxagent_utf8-copy-clipboard.patch | 45 |
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, |