This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

XFree86-xserv-4.3.0-36


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





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]