Skip to content

Appendix B. Suggested Protocol Revisions

During the development of these conventions, a number of inadequacies have been discovered in the core X11 protocol. They are summarized here as input to an eventual protocol revision design process:

  • There is no way for anyone to find out the last-change time of a selection. The GetSelectionOwner request should be changed to return the last-change time as well as the owner.

  • There is no way for a client to find out which selection atoms are valid.

  • There would be no need for WM_TAKE_FOCUS if the FocusIn event contained a timestamp and a previous-focus field. This could avoid the potential race condition. There is space in the event for this information; it should be added at the next protocol revision.

  • There is a race condition in the InstallColormap request. It does not take a timestamp and may be executed after the top-level colormap has been uninstalled. The next protocol revision should provide the timestamp in the InstallColormap, UninstallColormap, ListInstalledColormaps requests and in the ColormapNotify event. The timestamp should be used in a similar way to the last-focus-change time for the input focus. The lack of timestamps in these packets is the reason for restricting colormap installation to the window manager.

  • The protocol needs to be changed to provide some way of identifying the Visual and the Screen of a colormap.

  • There should be some way to reclaim assignments to the five nonpreassigned modifiers when they are no longer needed. The manual method is unpleasantly low-tech.