This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
XFree86-xserv-4.3.0-36
- From: Harold L Hunt II <huntharo at msu dot edu>
- To: cygx <cygwin-xfree at cygwin dot com>
- Date: Sat, 10 Jan 2004 22:59:24 -0500
- Subject: XFree86-xserv-4.3.0-36
- Reply-to: cygwin-xfree at cygwin dot com
- Reply-to: cygwin-xfree at cygwin dot com
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