This appendix describes the revision history of this document and summarizes the
incompatibilities between this and earlier versions.
A.1 The X11R2 Draft
The February 25, 1988 draft that was distributed as part of X Version 11, Release 2 was
clearly labeled as such, and many areas were explicitly labeled as liable to change.
Nevertheless, in the revision work since then, we have been very careful not to introduced
gratuitous incompatibility. As far as possible, we have tried to ensure that clients
obeying the conventions in the X11R2 draft would will work.
A.2 The July 27,1988 Draft
The Consortium review was based on a draft dated July 27, 1988. This draft included
several areas in which incompatibilities with the X11R2 draft were necessary:
- The use of property None in ConvertSelection requests is no longer
allowed. Owners that receive them are free to use the target atom as the property to
respond with, which will work in most cases.
- The protocol for INCREMENTAL type properties as selection replies has changed, and the
name has been changed to INCR. Selection requestors are free to implement the earlier
protocol if they receive properties of type INCREMENTAL.
- The protocol for INDIRECT type properties as selection replies has changed, and the name
has been changed to MULTIPLE. Selection requestors are free to implement the earlier
protocol if they receive properties of type INDIRECT.
- The protocol for the special CLIPBOARD client has changed. The earlier protocol is
subject to race conditions and should not be used.
- The set of state values in WM_HINTS.initial_state has been reduced, but the values that
are still valid are unchanged. Window managers should treat the other values sensibly.
- The methods an application uses to change the state of its top-level window have changed
but in such a way that cases that used to work will still work.
- The x, y, width, and height fields have been removed from the WM_NORMAL_HINTS property
and replaced by pad fields. Values set into these fields will be ignored. The position and
size of the window should be set by setting the appropriate window attributes.
- A pair of base fields and a win_gravity field have been added to the WM_NORMAL_HINTS
property. Window mangers will assume values for these fields if the client sets a short
A.3 The Public Review Drafts
The Consortium review resulted in several incompatible changes. These changes were
included in drafts that were distributed for public review during the first half of 1989.
- The messages field of the WM_HINTS property was found to be unwieldy and difficult to
evolve. It has been replaced by the WM_PROTOCOLS property, but clients that use the
earlier mechanism can be detected because they set the messages bit in the flags field of
the WM_HINTS property, and window managers can provide a backwards-compatibility mode.
- The mechanism described in the earlier draft by which clients installed their own
subwindow colormaps could not be made to work reliably and mandated some features of the
look and feel. It has been replaced by the WM_COLORMAP_WINDOWS property. Clients that use
the earlier mechanism can be detected by the WM_COLORMAPS property they set on their
top-level window, but providing a reliable backwards compatibility mode is not possible.
- The recommendations for window manager treatment of top-level window borders have been
changed as those in the earlier draft produced problems with Visibility events. For
non-window manager clients, there is no incompatibility.
- The pseudoroot facility in the earlier draft has been removed. Although it has been
successfully implemented, it turns out to be inadequate to support the uses envisaged. An
extension will be required to support these uses fully, and it was felt that the maximum
freedom should be left to the designers of the extension. In general, the previous
mechanism was invisible to clients and no incompatibility should result.
- The addition of the WM_DELETE_WINDOW protocol (which prevents the danger that multi
window clients may be terminated unexpectedly) had meant some changes in WM_SAVE_YOURSELF
protocol, to ensure that the two protocols are orthogonal. Clients using the earlier
protocol can be detected (see WM_PROTOCOLS above) and supported in a backwards
- The conventions in Section 14.3.1 . of Xlib-C
Language X Interface regarding properties of type RGB_COLOR_MAP have been changed,
but clients that use the earlier conventions can be detected because their properties are
four bytes shorter. These clients will work correctly if the server supports only a single
Visual or if they use only the Visual of the root. These are the only cases in which they
would have worked, anyway.
A.4 Version 1.0, July 1989
The public review resulted in a set of mostly editorial changes. The changes in version
1.0 that introduced some degree of incompatibility with the earlier drafts are:
- A new section (3.6.3) was added covering the window
manger's use of Grabs. The restrictions it imposes should affect only window mangers.
- The TARGETS selection target has been clarified, and it may be necessary for clients to
add some entries to their replies.
- A selection owner using ICR transfer should no longer replace targets in a MULTIPLE
property with the atom INCR.
- The contents of the ClientMessage event sent by a client to iconify itself has
been clarified, but there should be no incompatibility because the earlier contents would
not in face have worked.
- The border-width in synthetic ConfigureNotify events is now specified, but this
should not cause any incompatibility.
- Clients are now asked to set a border-width on all ConfigureWindow requests.
- Window manger properties on icon windows now will be ignored, but there should be no
incompatibility because there was no specification that they be obeyed previously.
- The ordering of real and synthetic ConfigureNotify events is now specified, but
any incompatibility should affect only window managers.
- The semantics of WM_SAVE_YOURSELF have been clarified and restricted to be a check-point
operation only. Clients that were using it as part of a shutdown sequence may need to be
modified, especially if they were interacting with the user during the shutdown.
- A kill_id field has been added to RGB_COLOR_MAP properties. Clients using earlier
conventions can be detected by the size of their RGB_COLOR_MAP properties, and the cases
that would have worked will still work.
A.5 Version 1.1
Version 1.1 was released with X11 R5 in September, 1991. In addition to some minor
editorial changes, there were a few semantic changes since version 1.0:
- The section on Device Color Characterization was added.
- The meaning of the NULL property type was clarified.
- Appropriate references to Compound Text were added.
A.6. Public Review Draft, December 1993
The following changes have been made in preparing the public review draft for Version
- Addition of advice to clients on how to keep track of a top-level window's absolute
position on the screen.
- A technique for clients to detect when it is safe to re-use a top-level window has been
- Section 22.214.171.124, on colormaps, has been rewritten A new
feature that allows clients to install their own colormaps has also been added.
- The LENGTH target has been deprecated.
- The manager selections facility was added.
- The definition of the aspect ratio fields of the WM_NORMAL_HINTS property has been
changed to include the base size.
- StaticGravity has been added to the list of values allowed for the win_gravity
field of the WM_HINTS property. The meaning of the CenterGravity value has been
- A means for clients to query the ICCCM compliance level of the window manager has been
- The definition of the MULTIPLE selection target has been clarified.
- A definition of "top-level window" has been added. The WM_STATE property has
been defined and exposed to clients.
- The definition of window states has been clarified and the wording regarding window
state changes has been made more consistent.
- Clarified the rules governing when window managers are required to send synthetic ConfigureNotify
- Added a recommended technique for setting the input focus to a window as soon as it is
- The required lifetime of resource IDs named in window manager properties has been
- Advice for dealing with keystrokes and override-redirect windows has been added.
- A statement on the ownership of resources transferred through the selection mechanism
has been added.
- The definition of the CLIENT_WINDOW target has been clarified.
- A rule about requiring the selection owner to re-acquire the selection under certain
circumstances has been added.
- Added several new selection targets.
- Ambiguous wording regarding the withdrawal of top-level windows has bee removed.
- A facility for requestors to pass parameters during a selection request has been added.
- A convention on discriminated names has been added.
- The C_STRING property type was added.
- An ordering requirement on processing selection requests was added.
- The Visible Hint flag was added.
- The session management section has been update to align with the new session management
protocol. The old session management conventions have been moved to Appendix C.
- References to the never-forthcoming Window and Session Manager Conventions Manual have
- Information on the X Registry and references to the session management and ICE documents
have been added.
- Numerous editorial and typographical improvements have been made.
A.7. Version 2.0, April 1994
The following changes have been made in preparation for releasing the final edition of
Version 2.0 with X 11 R6.
- The PIXMAP selection target has been revised to return a property of type PIXMAP instead
of type DRAWABLE .
- The session management section has been revised slightly to correspond with the changes
to the X Session Management Protocol.
- Window managers are now prohibited from placing CurrentTime in the timestamp
field of WM_TAKE_FOCUS messages.
- In the WM_HINTS property, the VisibleHint flag has been renamed to UrgencyHint.
Its semantics have also been defined more thoroughly.
- Additional editorial and typographical changes have been made.