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 Get-SelectionOwner 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 non-preassigned modifiers when they are no longer needed. The manual method is unpleasantly low-tech.