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 theInstallColormap
,UninstallColormap
,ListInstalledColormaps
requests and in theColormapNotify
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.