Commit 9674c434 authored by Mike Gabriel's avatar Mike Gabriel

UTF-8 Clipboard copying (106_nxagent_utf8-copy-clipboard.full.patch).

Enable UTF-8 clipboard copies. Originally contributed by FreeNX Team (dimbor).
parent c91fe980
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,
106_nxagent_utf8-copy-clipboard.full.patch
107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch 107_nxagent_clipboard-compound-text+small-bed-sheets.full.patch
108_nxagent_wine-close-delay.full.patch 108_nxagent_wine-close-delay.full.patch
110_nxagent_createpixmap-bounds-check.full.patch 110_nxagent_createpixmap-bounds-check.full.patch
......
...@@ -166,6 +166,8 @@ Bool nxagentValidServerTargets(Atom target) ...@@ -166,6 +166,8 @@ Bool nxagentValidServerTargets(Atom target)
if (target == XA_STRING) return True; if (target == XA_STRING) return True;
if (target == serverTEXT) return True; if (target == serverTEXT) return True;
/* by dimbor */
if (target == serverUTF8_STRING) return True;
return False; return False;
} }
...@@ -402,6 +404,11 @@ FIXME: Do we need this? ...@@ -402,6 +404,11 @@ FIXME: Do we need this?
lastServerProperty = X->xselectionrequest.property; lastServerProperty = X->xselectionrequest.property;
lastServerRequestor = X->xselectionrequest.requestor; lastServerRequestor = X->xselectionrequest.requestor;
lastServerTarget = X->xselectionrequest.target; lastServerTarget = X->xselectionrequest.target;
/* by dimbor */
if (lastServerTarget != XA_STRING)
lastServerTarget = serverUTF8_STRING;
lastServerTime = X->xselectionrequest.time; lastServerTime = X->xselectionrequest.time;
x.u.u.type = SelectionRequest; x.u.u.type = SelectionRequest;
...@@ -424,11 +431,12 @@ FIXME: Do we need this? ...@@ -424,11 +431,12 @@ FIXME: Do we need this?
x.u.selectionRequest.selection = CurrentSelections[i].selection; x.u.selectionRequest.selection = CurrentSelections[i].selection;
/* /* by dimbor (idea from zahvatov) */
* x.u.selectionRequest.target = X->xselectionrequest.target; 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; x.u.selectionRequest.property = clientCutProperty;
(void) TryClientEvents(lastSelectionOwner[i].client, &x, 1, (void) TryClientEvents(lastSelectionOwner[i].client, &x, 1,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment