Skip to content

Appendix A. Revision History

This appendix describes the revision history of this document and summarizes the incompatibilities between this and earlier versions.

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 done since then, we have been very careful not to introduce gratuitous incompatibility. As far as possible, we have tried to ensure that clients obeying the conventions in the X11R2 draft would still work.

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 managers will assume values for these fields if the client sets a short property.

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 nonwindow 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) has meant some changes in the 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 compatibility mode.

  • 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 4 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.

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 ( Grabs ) was added covering the window manager's use of Grabs. The restrictions it imposes should affect only window managers.

  • 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 INCR 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 fact 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 manager 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 checkpoint 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.

Version 1.1

Version 1.1 was released with X11R5 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.

Public Review Draft, December 1993

The following changes have been made in preparing the public review draft for Version 2.0.

  • [P01] Addition of advice to clients on how to keep track of a top-level window's absolute position on the screen.

  • [P03] A technique for clients to detect when it is safe to reuse a top-level window has been added.

  • [P06] Colormaps , on colormaps, has been rewritten. A new feature that allows clients to install their own colormaps has also been added.

  • [P08] The LENGTH target has been deprecated.

  • [P11] The manager selections facility was added.

  • [P17] The definition of the aspect ratio fields of the WM_NORMAL_HINTS property has been changed to include the base size.

  • [P19] 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 clarified.

  • [P20] A means for clients to query the ICCCM compliance level of the window manager has been added.

  • [P22] The definition of the MULTIPLE selection target has been clarified.

  • [P25] A definition of "top-level window" has been added. The WM_STATE property has been defined and exposed to clients.

  • [P26] The definition of window states has been clarified and the wording regarding window state changes has been made more consistent.

  • [P27] Clarified the rules governing when window managers are required to send synthetic ConfigureNotify events.

  • [P28] Added a recommended technique for setting the input focus to a window as soon as it is mapped.

  • [P29] The required lifetime of resource IDs named in window manager properties has been specified.

  • [P30] Advice for dealing with keystrokes and override-redirect windows has been added.

  • [P31] A statement on the ownership of resources transferred through the selection mechanism has been added.

  • [P32] The definition of the CLIENT_WINDOW target has been clarified.

  • [P33] A rule about requiring the selection owner to reacquire the selection under certain circumstances has been added.

  • [P42] Added several new selection targets.

  • [P44] Ambiguous wording regarding the withdrawal of top-level windows has been removed.

  • [P45] A facility for requestors to pass parameters during a selection request has been added.

  • [P49] A convention on discrimated names has been added.

  • [P57] The C_STRING property type was added.

  • [P62] An ordering requirement on processing selection requests was added.

  • [P63] The VisibleHint flag was added.

  • [P64] The session management section has been updated 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 been removed.

  • 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.

Version 2.0, April 1994

The following changes have been made in preparation for releasing the final edition of Version 2.0 with X11R6.

  • 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.