After the long debate yesterday about clipboards sucking major eggs and stuff I started looking into the problem. One of the problems is that xterm doesn't honor the "Keep Selection" flag. The code is a little tangly but if I read it correctly it looks like a simple test was missed. This brings xterm in line with all other applications (including gtk ones) where, by default, if a selection is cleared on the screen it ISN'T cleared from PRIMARY. People who desire the clearing of PRIMARY should use the "XTerm*keepSelection: false" setting as described in the manual.
This is just step one. The rest of the issues seem to be hidden in gtk. Index: button.c =================================================================== RCS file: /cvs/xenocara/app/xterm/button.c,v retrieving revision 1.17 diff -u -p -u -p -r1.17 button.c --- button.c 7 Mar 2011 20:41:27 -0000 1.17 +++ button.c 17 Aug 2011 21:01:24 -0000 @@ -3890,7 +3890,7 @@ DisownSelection(XtermWidget xw) for (i = 0; i < count; i++) { int cutbuffer = CutBuffer(atoms[i]); - if (cutbuffer < 0) { + if (!screen->keepSelection && cutbuffer < 0) { XtDisownSelection((Widget) xw, atoms[i], screen->selection_time); }