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