summaryrefslogtreecommitdiff
path: root/x11/xclip/patches/patch-aa
diff options
context:
space:
mode:
Diffstat (limited to 'x11/xclip/patches/patch-aa')
-rw-r--r--x11/xclip/patches/patch-aa58
1 files changed, 58 insertions, 0 deletions
diff --git a/x11/xclip/patches/patch-aa b/x11/xclip/patches/patch-aa
new file mode 100644
index 00000000000..d42959d0dfa
--- /dev/null
+++ b/x11/xclip/patches/patch-aa
@@ -0,0 +1,58 @@
+$NetBSD: patch-aa,v 1.1 2007/06/08 17:49:54 wiz Exp $
+
+KDE integration (from Debian bug 172812)
+
+--- xclib.c.orig Mon Dec 17 01:14:40 2001
++++ xclib.c Thu Dec 12 13:16:57 2002
+@@ -100,7 +100,7 @@
+ )
+ {
+ /* a property for other windows to put their selection into */
+- Atom pty, inc, pty_type;
++ Atom pty, inc, pty_type, targets;
+ int pty_format;
+
+ /* buffer for XGetWindowProperty to dump data into */
+@@ -111,6 +111,7 @@
+ unsigned char *ltxt;
+
+ pty = XInternAtom(dpy, "XCLIP_OUT", False);
++ targets = XInternAtom(dpy, "TARGETS", False);
+
+ switch (*context)
+ {
+@@ -353,7 +354,9 @@
+ * transfers only)
+ */
+ XEvent res; /* response to event */
+- Atom inc;
++ Atom inc, targets;
++
++ targets = XInternAtom(dpy, "TARGETS", False);
+
+ switch (*context)
+ {
+@@ -369,7 +372,22 @@
+ *pos = 0;
+
+ /* put the data into an property */
+- if (len > XC_CHUNK)
++ if (evt.xselectionrequest.target == targets)
++ {
++ Atom types[2] = { targets, XA_STRING };
++
++ /* send data all at once (not using INCR) */
++ XChangeProperty(
++ dpy,
++ *win,
++ *pty,
++ targets,
++ 8,
++ PropModeReplace,
++ (unsigned char*) types,
++ (int)sizeof(types)
++ );
++ } else if (len > XC_CHUNK)
+ {
+ /* INCR Atom to set response property to */
+ inc = XInternAtom(dpy, "INCR", False);