commit -- major clipboard overhaul

Jeff Hostetler (jeff@abisource.com)
Sun, 26 Sep 1999 15:38:30 -0500


i just spent the last few days digging thru the
details of the X clipboard and the X selection
mechanism. all i can say is that i now have
complete understanding and am one with the universe
(or maybe i just have a migrain headache).

i rewrote the X CLIPBOARD code and added
support for the X Selection mechanism (and
middle mouse pasting). there are a few minor
problems, but it's generally works.

[ at this point i need to apologize to Justin
[ for completely rewriting the unix clipboard
[ code that he contributed -- but overlaying
[ the different/delicate semantics of the X
[ selection code on the bogus cross-platform
[ clipboard API that we had and the difficulties
[ of way the views handle selections and the
[ diferences from how clipboards are handled
[ and <...insert more generic excuses here...>
[ was just toooo much to keep track of. so i
[ re-wrote it.

on X, we now support the usual cut/copy/paste
methods both internally and with "certain" other
applications. these are the explicit operations
that use the CLIPBOARD property.

we also support the 'drag a selection' and 'middle
mouse paste' it somewhere else. again both internally
and with "certain" applications. these all use the
PRIMARY property.

i've tested it and had it work with various
combinations of other applications; these include
emacs, xemacs, xterm, rxvt, and netscape. but i had
trouble with some other applications, like konsole,
so i'm not sure what's going on. given the complexity
of the details, i'm not suprized.... i'll study this
more later.

i also made modifications to the Win32 and BeOS
clipboard routines to streamline them and remove
some no-longer-used functions (part of the xp API
changes i was talking about).

i also removed some hi-frequency/low-value debug
messages (keyboard & mouse events), but added a
whole bunch of clipboard-related ones -- so we're
still quite long-winded [as are my checkin messsages]

as usual, let me (and bugzilla) know if you see
any problems.

jeff



This archive was generated by hypermail 1.03b2.