XFree86-xserv-4.3.0-36

Harold L Hunt II huntharo@msu.edu
Sun Jan 11 03:59:00 GMT 2004


A new 'test' version has been posted with many changes to the clipboard
support.

The new version includes a fix for calling OpenClipboard without calling 
CloseClipboard, which makes the Win32 clipboard inaccessible to other 
applications until we call CloseClipboard later when something is 
selected in X11.

I have now identified the following things that need to be changed 
before this series of releases can be marked as 'curr':

1) [Easy] When aborting processing of a SelectionRequest message, be 
sure to send a SelectionNotify event to the requesting X Client, telling 
them that no selection data is available.  Currently we are not sending 
a response in several cases, which is a broken way to do things.

2) [Medium] Perhaps add some protections to our call to XPeekIfEvent to 
make our predicate function return TRUE if a timeout happens.  We might 
be able to do this by setting up a timer event (if these are supported, 
I suspect they are) and having our predicate function return TRUE for 
both the SelectionNotify event and/or our timer expired event.  The 
reason to do this is that an X11 Client that misbehaves like we do in #1 
(not sending a SelectionNotify in response to a SelectionRequest) will 
cause our clipboard thread to block indefinitely.  This will eventually 
lead to a crash.

3) [Hard] Release ownership of the X11 selections if an unsupported 
format is copied to the Win32 clipboard.  It will be difficult to do 
this without triggering infinite loops in our code that monitors changes 
in ownership of the X11 selection.  It is, however, quite possible to do.

Harold






More information about the Cygwin-xfree mailing list