diff options
-rw-r--r-- | debian/patches/106_nxagent_utf8-copy-clipboard.full.patch | 52 | ||||
-rw-r--r-- | debian/patches/series | 1 | ||||
-rw-r--r-- | nx-X11/programs/Xserver/hw/nxagent/Clipboard.c | 16 |
3 files changed, 12 insertions, 57 deletions
diff --git a/debian/patches/106_nxagent_utf8-copy-clipboard.full.patch b/debian/patches/106_nxagent_utf8-copy-clipboard.full.patch deleted file mode 100644 index 9c0a047d6..000000000 --- a/debian/patches/106_nxagent_utf8-copy-clipboard.full.patch +++ /dev/null @@ -1,52 +0,0 @@ -Description: UTF-8 Clipboard copying - Enable UTF-8 clipboard copies. - . - Originally contributed by FreeNX Team (dimbor). -Forwarded: not-yet -Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> -Last-Update: 2011-12-31 ---- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c -+++ b/nx-X11/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, diff --git a/debian/patches/series b/debian/patches/series index d34201547..c0c34264a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,3 @@ -106_nxagent_utf8-copy-clipboard.full.patch 107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch 108_nxagent_wine-close-delay.full.patch 110_nxagent_createpixmap-bounds-check.full.patch diff --git a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c index 2742e147f..d17f154cd 100644 --- a/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c +++ b/nx-X11/programs/Xserver/hw/nxagent/Clipboard.c @@ -166,6 +166,8 @@ Bool nxagentValidServerTargets(Atom target) if (target == XA_STRING) return True; if (target == serverTEXT) return True; + /* by dimbor */ + if (target == serverUTF8_STRING) return True; return False; } @@ -402,6 +404,11 @@ FIXME: Do we need this? lastServerProperty = X->xselectionrequest.property; lastServerRequestor = X->xselectionrequest.requestor; lastServerTarget = X->xselectionrequest.target; + + /* by dimbor */ + if (lastServerTarget != XA_STRING) + lastServerTarget = serverUTF8_STRING; + lastServerTime = X->xselectionrequest.time; x.u.u.type = SelectionRequest; @@ -424,11 +431,12 @@ FIXME: Do we need this? x.u.selectionRequest.selection = CurrentSelections[i].selection; - /* - * x.u.selectionRequest.target = X->xselectionrequest.target; - */ + /* 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.target = XA_STRING; x.u.selectionRequest.property = clientCutProperty; (void) TryClientEvents(lastSelectionOwner[i].client, &x, 1, |