summaryrefslogtreecommitdiff
path: root/specs/CH13
diff options
context:
space:
mode:
authorAlan Coopersmith <alan.coopersmith@oracle.com>2010-06-08 20:26:29 -0700
committerAlan Coopersmith <alan.coopersmith@oracle.com>2010-06-08 20:26:29 -0700
commit74cb722a974010fa3c82dc57a036f97768b3695b (patch)
tree17c13995e79faf0e5478b98770b739aca8188c3f /specs/CH13
parent56621d3ec521dd30fabb1a77ad1c396baa740569 (diff)
Move Xt specs from xorg-docs module
For now, just checked in and included in dist tarballs, not processed into a usable format - same as it was in xorg-docs Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'specs/CH13')
-rw-r--r--specs/CH13805
1 files changed, 805 insertions, 0 deletions
diff --git a/specs/CH13 b/specs/CH13
new file mode 100644
index 0000000..8c944a6
--- /dev/null
+++ b/specs/CH13
@@ -0,0 +1,805 @@
+.\" $Xorg: CH13,v 1.3 2000/08/17 19:42:47 cpqbld Exp $
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994
+.\" X Consortium
+.\"
+.\" Permission is hereby granted, free of charge, to any person obtaining
+.\" a copy of this software and associated documentation files (the
+.\" "Software"), to deal in the Software without restriction, including
+.\" without limitation the rights to use, copy, modify, merge, publish,
+.\" distribute, sublicense, and/or sell copies of the Software, and to
+.\" permit persons to whom the Software is furnished to do so, subject to
+.\" the following conditions:
+.\"
+.\" The above copyright notice and this permission notice shall be included
+.\" in all copies or substantial portions of the Software.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+.\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+.\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+.\" IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR
+.\" OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+.\" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+.\" OTHER DEALINGS IN THE SOFTWARE.
+.\"
+.\" Except as contained in this notice, the name of the X Consortium shall
+.\" not be used in advertising or otherwise to promote the sale, use or
+.\" other dealings in this Software without prior written authorization
+.\" from the X Consortium.
+.\"
+.\" Copyright \(co 1985, 1986, 1987, 1988, 1991, 1994
+.\" Digital Equipment Corporation, Maynard, Massachusetts.
+.\"
+.\" Permission to use, copy, modify and distribute this documentation for any
+.\" purpose and without fee is hereby granted, provided that the above copyright
+.\" notice appears in all copies and that both that copyright notice and this
+.\" permission notice appear in supporting documentation, and that the name of
+.\" Digital not be used in in advertising or publicity pertaining
+.\" to distribution of the software without specific, written prior permission.
+.\" Digital makes no representations about the suitability of the
+.\" software described herein for any purpose.
+.\" It is provided ``as is'' without express or implied warranty.
+.\"
+\&
+.sp 1
+.ce 3
+\s+1\fBChapter 13\fP\s-1
+
+\s+1\fBEvolution of the \*(xI\fP\s-1
+.sp 2
+.nr H1 13
+.nr H2 0
+.nr H3 0
+.nr H4 0
+.nr H5 0
+.LP
+.XS
+Chapter 13 \(em Evolution of the \*(xI
+.XE
+.LP
+The interfaces described by this specification have undergone several
+sets of revisions in the course of adoption as an X Consortium
+standard specification. Having now been adopted by the Consortium as
+a standard part of the X Window System, it is expected that this and
+future revisions will retain
+backward compatibility in the sense that fully conforming
+implementations of these specifications may be produced that provide
+source compatibility with widgets and applications written to
+previous Consortium standard revisions.
+.LP
+The \*(xI do not place any special requirement on widget
+programmers to retain source or binary compatibility for their widgets
+as they evolve, but several conventions have been established to
+assist those developers who want to provide such compatibility.
+.LP
+In particular, widget programmers may wish to conform to the convention
+described in Section 1.6.12 when defining class extension records.
+
+.NH 2
+Determining Specification Revision Level
+.XS
+\fB\*(SN Determining Specification Revision Level\fP
+.XE
+.LP
+Widget and application developers who wish to maintain a common source
+pool that will build properly with implementations of the \*(xI
+at different revision levels of these specifications but that take
+advantage of newer features added in later revisions may use the
+symbolic macro
+.PN XtSpecificationRelease .
+.LP
+.Ds 0
+#define XtSpecificationRelease 6
+.De
+.IN "XtSpecificationRelease" "" "@DEF@"
+.LP
+As the symbol
+.PN XtSpecificationRelease
+was new to Release 4, widgets and
+applications desiring to build against earlier implementations should
+test for the presence of this symbol and assume only Release 3
+interfaces if the definition is not present.
+
+.NH 2
+Release 3 to Release 4 Compatibility
+.XS
+\fB\*(SN Release 3 to Release 4 Compatibility\fP
+.XE
+.LP
+At the data structure level, Release 4 retains binary compatibility
+with Release 3 (the first X Consortium standard release) for all data
+structures except
+.PN WMShellPart,
+.PN TopLevelShellPart ,
+and
+.PN TransientShellPart .
+Release 4 changed the argument type to most procedures that now take
+arguments of type
+.PN XtPointer
+and structure members that are now of type
+.PN XtPointer
+in order to avoid potential ANSI C conformance problems. It is
+expected that most implementations will be binary compatible with the
+previous definition.
+.LP
+Two fields in
+.PN CoreClassPart
+were changed from
+.PN Boolean
+to
+.PN XtEnum
+to allow implementations additional freedom in specifying the
+representations of each. This change should require no source
+modification.
+
+.NH 3
+Additional Arguments
+.XS
+\*(SN Additional Arguments
+.XE
+.LP
+Arguments were added to the procedure definitions for
+.PN XtInitProc ,
+.PN XtSetValuesFunc ,
+and
+.PN XtEventHandler
+to provide more information and to
+allow event handlers to abort further dispatching of the current event
+(caution is advised!). The added arguments to
+.PN XtInitProc
+and
+.PN XtSetValuesFunc
+make the initialize_hook and set_values_hook methods
+obsolete, but the hooks have been retained for those widgets that used
+them in Release 3.
+
+.NH 3
+set_values_almost Procedures
+.XS
+\*(SN set_values_almost Procedures
+.XE
+.LP
+The use of the arguments by a set_values_almost procedure was poorly
+described in Release 3 and was inconsistent with other conventions.
+.LP
+The current specification for the manner in which a set_values_almost
+procedure returns information to the \*(xI is not compatible with
+the Release 3 specification, and all widget implementations should
+verify that any set_values_almost procedures conform to the current
+interface.
+.LP
+No known implementation of the \*(xI correctly implemented the
+Release 3 interface, so it is expected that the impact of this
+specification change is small.
+
+.NH 3
+Query Geometry
+.XS
+\*(SN Query Geometry
+.XE
+.LP
+A composite widget layout routine that calls
+.PN XtQueryGeometry
+is now expected to store the complete new geometry in the intended structure;
+previously the specification said ``store the changes it intends to
+make''. Only by storing the complete geometry does the child have
+any way to know what other parts of the geometry may still be
+flexible. Existing widgets should not be affected by this, except
+to take advantage of the new information.
+
+.NH 3
+unrealizeCallback Callback List
+.XS
+\*(SN unrealizeCallback Callback List
+.XE
+.LP
+In order to provide a mechanism for widgets to be notified when they
+become unrealized through a call to
+.PN XtUnrealizeWidget ,
+the callback
+list name ``unrealizeCallback'' has been defined by the \*(xI. A
+widget class that requires notification on unrealize may declare a
+callback list resource by this name. No class is required to declare
+this resource, but any class that did so in a prior revision may find
+it necessary to modify the resource name if it does not wish to use the new
+semantics.
+
+.NH 3
+Subclasses of WMShell
+.XS
+\*(SN Subclasses of WMShell
+.XE
+.LP
+The formal adoption of the \fI\*(xC\fP as
+an X Consortium standard has meant the addition of four fields to
+.PN WMShellPart
+and one field to
+.PN TopLevelShellPart .
+In deference to some
+widget libraries that had developed their own additional conventions
+to provide binary compatibility, these five new fields were added at
+the end of the respective data structures.
+.LP
+To provide more convenience for TransientShells, a field was added
+to the previously empty
+.PN TransientShellPart .
+On some architectures the size of the part structure will not
+have changed as a result of this.
+.LP
+Any widget implementation whose class is a subclass of
+TopLevelShell
+or
+TransientShell
+must at minimum be
+recompiled with the new data structure declarations. Because
+.PN WMShellPart
+no longer contains a contiguous
+.PN XSizeHints
+data structure,
+a subclass that expected to do a single structure assignment of an
+.PN XSizeHints
+structure to the \fIsize_hints\fP field of
+.PN WMShellPart
+must be revised, though the old fields remain at the same positions within
+.PN WMShellPart .
+
+.NH 3
+Resource Type Converters
+.XS
+\*(SN Resource Type Converters
+.XE
+.LP
+A new interface declaration for resource type converters was defined
+to provide more information to converters, to support conversion
+cache cleanup with resource reference counting, and to allow
+additional procedures to be declared to free resources. The old
+interfaces remain (in the compatibility section), and a new set of
+procedures was defined that work only with the new type converter
+interface.
+.LP
+In the now obsolete old type converter interface, converters are
+reminded that they must return the size of the converted value as well
+as its address. The example indicated this, but the description of
+.PN XtConverter
+was incomplete.
+
+.NH 3
+KeySym Case Conversion Procedure
+.XS
+\*(SN KeySym Case Conversion Procedure
+.XE
+.LP
+The specification for the
+.PN XtCaseProc
+function type has been changed
+to match the Release 3 implementation, which included necessary
+additional information required by the function (a pointer to the
+display connection), and corrects the argument type of the source
+KeySym parameter. No known implementation of the \*(xI
+implemented the previously documented interface.
+
+.NH 3
+Nonwidget Objects
+.XS
+\*(SN Nonwidget Objects
+.XE
+.LP
+Formal support for nonwidget objects is new to Release 4. A
+prototype implementation was latent in at least one Release 3
+implementation of the \*(xI, but the specification has changed
+somewhat. The most significant change is the requirement for a
+composite widget to declare the
+.PN CompositeClassExtension
+record with the \fIaccepts_objects\fP field set to
+.PN True
+in order to permit a client to create a nonwidget child.
+.LP
+The addition of this extension field ensures that composite widgets
+written under Release 3 will not encounter unexpected errors if an
+application attempts to create a nonwidget child. In Release 4 there
+is no requirement that all composite widgets implement the extra
+functionality required to manage windowless children, so the
+\fIaccepts_objects\fP field allows a composite widget to declare that it
+is not prepared to do so.
+
+.NH 2
+Release 4 to Release 5 Compatibility
+.XS
+\fB\*(SN Release 4 to Release 5 Compatibility\fP
+.XE
+.LP
+At the data structure level, Release 5 retains complete binary
+compatibility with Release 4. The specification of the
+.PN ObjectPart ,
+.PN RectObjPart ,
+.PN CorePart ,
+.PN CompositePart ,
+.PN ShellPart ,
+.PN WMShellPart ,
+.PN TopLevelShellPart ,
+and
+.PN ApplicationShellPart
+instance records was made less strict to permit implementations to
+add internal fields to these structures. Any implementation that
+chooses to do so would, of course, force a recompilation.
+The Xlib specification for
+.PN XrmValue
+and
+.PN XrmOptionDescRec
+was updated to use a new type,
+.PN XPointer ,
+for the \fIaddr\fP and \fIvalue\fP fields, respectively, to avoid
+ANSI C conformance problems. The definition of
+.PN XPointer
+is binary compatible with the previous implementation.
+
+.NH 3
+baseTranslations Resource
+.XS
+\fB\*(SN baseTranslations Resource\fP
+.XE
+
+.LP
+A new pseudo-resource, XtNbaseTranslations, was defined to permit
+application developers to specify translation tables in application
+defaults files while still giving end users the ability to augment
+or override individual event sequences. This change will affect
+only those applications that wish to take advantage of the new
+functionality or those widgets that may have previously defined
+a resource named ``baseTranslations''.
+.LP
+Applications wishing to take advantage of the new functionality
+would change their application defaults file, e.g., from
+.Ds
+ app.widget.translations: \fIvalue\fP
+.DE
+to
+.Ds
+ app.widget.baseTranslations: \fIvalue\fP
+.DE
+If it is important to the application to preserve complete
+compatibility of the defaults file between different versions
+of the application running under Release 4 and Release 5,
+the full translations can be replicated in both the ``translations''
+and the ``baseTranslations'' resource.
+
+.NH 3
+Resource File Search Path
+.XS
+\fB\*(SN Resource File Search Path\fP
+.XE
+
+.LP
+The current specification allows implementations greater flexibility
+in defining the directory structure used to hold the application class
+and per-user application defaults files. Previous specifications
+required the substitution strings to appear in the default path in a
+certain order, preventing sites from collecting all the files for
+a specific application together in one directory. The Release 5
+specification allows the default path to specify the substitution
+strings in any order within a single path entry. Users will need to
+pay close attention to the documentation for the specific
+implementation to know where to find these files and how to specify
+their own
+.PN \s-1XFILESEARCHPATH\s+1
+and
+.PN \s-1XUSERFILESEARCHPATH\s+1
+values when overriding the system defaults.
+
+.NH 3
+Customization Resource
+.XS
+\fB\*(SN Customization Resource\fP
+.XE
+
+.LP
+.PN XtResolvePathname
+supports a new substitution string, %C, for specifying separate
+application class resource files according to arbitrary user-specified
+categories. The primary motivation for this addition was separate
+monochrome and color application class defaults files. The
+substitution value is obtained by querying the current resource
+database for the application resource name ``customization'', class
+``Customization''. Any application that previously used this
+resource name and class will need to be aware of the possibly
+conflicting semantics.
+
+.NH 3
+Per-Screen Resource Database
+.XS
+\fB\*(SN Per-Screen Resource Database\fP
+.XE
+
+.LP
+To allow a user to specify separate preferences for each screen of a
+display, a per-screen resource specification string has been added and
+multiple resource databases are created; one for each screen. This
+will affect any application that modified the (formerly unique)
+resource database associated with the display subsequent to the \*(xI
+database initialization. Such applications will need to be aware
+of the particular screen on which each shell widget is to be created.
+.LP
+Although the wording of the specification changed substantially in the
+description of the process by which the resource database(s) is
+initialized, the net effect is the same as in prior releases with the
+exception of the added per-screen resource specification and the new
+customization substitution string in
+.PN XtResolvePathname .
+
+.NH 3
+Internationalization of Applications
+.XS
+\fB\*(SN Internationalization of Applications\fP
+.XE
+
+.LP
+Internationalization as defined by ANSI is a technology that
+allows support of an application in a single locale. In
+adding support for internationalization to the \*(xI
+the restrictions of this model have been followed.
+In particular, the new \*(xI interfaces are designed not to
+preclude an application from using other alternatives.
+For this reason, no \*(xI routine makes a call to establish the
+locale. However, a convenience routine to establish the
+locale at initialize time has been provided, in the form
+of a default procedure that must be explicitly installed
+if the application desires ANSI C locale behavior.
+.LP
+As many objects in X, particularly resource databases, now inherit
+the global locale when they are created, applications wishing to use
+the ANSI C locale model should use the new function
+.PN XtSetLanguageProc
+to do so.
+.LP
+The internationalization additions also define event filters
+as a part of the Xlib Input Method specifications. The
+\*(xI enable the use of event filters through additions to
+.PN XtDispatchEvent .
+Applications that may not be dispatching all events through
+.PN XtDispatchEvent
+should be reviewed in the context of this new input method mechanism.
+.LP
+In order to permit internationalization of error messages, the name
+and path of the error database file are now allowed to be
+implementation-dependent.
+No adequate standard mechanism has yet been suggested to
+allow the \*(xI to locate the database from localization information
+supplied by the client.
+.LP
+The previous specification for the syntax of the language string
+specified by
+.PN xnlLanguage
+has been dropped to avoid potential conflicts with other standards.
+The language string syntax is now implementation-defined.
+The example syntax cited is consistent with the previous
+specification.
+
+.NH 3
+Permanently Allocated Strings
+.XS
+\*(SN Permanently Allocated Strings
+.XE
+
+.LP
+In order to permit additional memory savings, an Xlib interface was
+added to allow the resource manager to avoid copying certain string
+constants. The \*(xI specification was updated to explicitly require
+the Object \fIclass_name\fP, \fIresource_name\fP, \fIresource_class\fP,
+\fIresource_type\fP, \fIdefault_type\fP in resource tables, Core \fIactions\fP
+\fIstring\fP field, and Constraint \fIresource_name\fP, \fIresource_class\fP,
+\fIresource_type\fP, and \fIdefault_type\fP resource fields to be
+permanently allocated. This explicit requirement is expected to
+affect only applications that may create and destroy classes
+on the fly.
+
+.NH 3
+Arguments to Existing Functions
+.XS
+\fB\*(SN Arguments to Existing Functions\fP
+.XE
+
+.LP
+The \fIargs\fP argument to
+.PN XtAppInitialize ,
+.PN XtVaAppInitialize ,
+.PN XtOpenDisplay ,
+.PN XtDisplayInitialize ,
+and
+.PN XtInitialize
+were changed from
+.PN Cardinal *
+to int* to conform to pre-existing convention and avoid otherwise
+annoying typecasting in ANSI C environments.
+
+.NH 2
+Release 5 to Release 6 Compatibility
+.XS
+\fB\*(SN Release 5 to Release 6 Compatibility\fP
+.XE
+.LP
+At the data structure level, Release 6 retains binary compatibility
+with Release 5 for all data structures except
+.PN WMShellPart .
+Three resources were added to the specification.
+The known implementations had unused space in the data structure,
+therefore on some architectures and implementations,
+the size of the part structure will not have changed as a result of this.
+
+.NH 3
+Widget Internals
+.XS
+\*(SN Widget Internals
+.XE
+.LP
+Two new widget methods for instance allocation and deallocation were added
+to the Object class. These new methods
+allow widgets to be treated as C++ objects in the C++ environment
+when an appropriate allocation method is specified or inherited
+by the widget class.
+.LP
+The textual descriptions of the processes of widget creation and
+widget destruction have been edited to provide clarification to widget
+writers. Widgets writers may have reason to rely on the specific order of
+the stages of widget creation and destruction; with that motivation,
+the specification now more exactly describes the process.
+.LP
+As a convenience, an interface to locate a widget class extension
+record on a linked list,
+.PN XtGetClassExtension ,
+has been added.
+.LP
+A new option to allow bundled changes to the managed set of a Composite
+widget is introduced in the Composite class extension record.
+Widgets that define a change_managed procedure that can accommodate
+additions and deletions to the managed set of children in a single
+invocation should set allows_change_managed_set to \fBTrue\fP in the
+extension record.
+.LP
+The wording of the process followed by
+.PN XtUnmanageChildren
+has changed slightly to better handle changes to the managed set
+during phase 2 destroy processing.
+.LP
+A new exposure event compression flag,
+.PN XtExposeNoRegion ,
+was added. Many widgets specify exposure compression, but either
+ignore the actual damage region passed to the core expose procedure or
+use only the cumulative bounding box data available in the event.
+Widgets with expose procedures that do not make use of exact
+exposure region information can indicate that the \*(xI need not
+compute the region.
+
+.NH 3
+General Application Development
+.XS
+\*(SN General Application Development
+.XE
+.LP
+.PN XtOpenApplication
+is a new convenience procedure to initialize the toolkit, create an
+application context, open an X display connection, and create the
+root of the widget instance tree. It is identical to the interface
+it replaces,
+.PN XtAppInitialize ,
+in all respects except that it takes an additional argument specifying
+the widget class of the root shell to create.
+This interface is now the recommended one so that clients may easily
+become session participants.
+The old convenience procedures appear in the compatibility section.
+.LP
+The toolkit initialization function
+.PN XtToolkitInitialize
+may be called multiple times without penalty.
+.LP
+In order to optimize changes in geometry to a set of geometry-managed
+children, a new interface,
+.PN XtChangeManagedSet ,
+has been added.
+
+.NH 3
+Communication with Window and Session Managers
+.XS
+\*(SN Communication with Window and Session Managers
+.XE
+.LP
+The revision of the \fI\*(xC\fP as an X Consortium standard has resulted
+in the addition of three fields to the specification of
+.PN WMShellPart .
+These are \fIurgency\fP, \fIclient_leader\fP, and \fIwindow_role\fP.
+.LP
+The adoption of the \fIX Session Management Protocol\fP as an X Consortium
+standard has resulted in the addition of a new shell widget,
+.PN SessionShell ,
+and an accompanying subclass verification interface,
+.PN XtIsSessionShell .
+This widget provides support for communication between an application
+and a session manager, as well as a window manager.
+In order to preserve compatibility with existing subclasses of
+.PN ApplicationShell ,
+the
+.PN ApplicationShell
+was subclassed to create the new widget class.
+The session protocol requires a modal response to certain checkpointing
+operations by participating applications. The
+.PN SessionShell
+structures
+the application's notification of and responses to messages from the session
+manager by use of various callback lists and by use of the new interfaces
+.PN XtSessionGetToken
+and
+.PN XtSessionReturnToken .
+There is also a new command line argument, -xtsessionID, which facilitates
+the session manager in restarting applications based on the \*(xI.
+.LP
+The resource name and class strings defined by the \*(xI shell
+widgets in
+.Pn < X11/Shell.h >
+are now listed in Appendix E. The addition of a new symbol
+for the
+.PN WMShell
+\fIwait_for_wm\fP resource was made to bring the external symbol
+and the string it represents into agreement. The actual resource name
+string in
+.PN WMShell
+has not changed.
+The resource representation type of the XtNwinGravity resource of the
+.PN WMShell
+was changed to XtRGravity in order to register a type
+converter so that window gravity resource values could be specified by name.
+
+.NH 3
+Geometry Management
+.XS
+\*(SN Geometry Management
+.XE
+.LP
+A clarification to the specification was made to indicate that geometry
+requests may include current values along with the requested changes.
+
+.NH 3
+Event Management
+.XS
+\*(SN Event Management
+.XE
+.LP
+In Release 6, support is provided for registering selectors
+and event handlers for events generated by X protocol extensions
+and for dispatching those events to the appropriate widget.
+The new event handler registration interfaces are
+.PN XtInsertEventTypeHandler
+and
+.PN XtRemoveEventTypeHandler .
+Since the mechanism to indicate selection of extension events is specific
+to the extension being used, the \*(xI introduces
+.PN XtRegisterExtensionSelector ,
+which allows the application to select for the events of interest.
+In order to change the dispatching algorithm to accommodate extension events
+as well as core X protocol events,
+the \*(xI event dispatcher may now be replaced or enveloped
+by the application with
+.PN XtSetEventDispatcher .
+The dispatcher may wish to call
+.PN XtGetKeyboardFocusWidget
+to determine the widget with the current \*(xI keyboard focus.
+A dispatcher, after determining the destination widget, may use
+.PN XtDispatchEventToWidget
+to cause the event to be dispatched to the event handlers registered
+by a specific widget.
+.LP
+To permit the dispatching of events
+for nonwidget drawables, such as pixmaps that are not associated
+with a widget's window,
+.PN XtRegisterDrawable
+and
+.PN XtUnregisterDrawable
+have been added to the library. A related update was made to
+the description of
+.PN XtWindowToWidget .
+.LP
+The library is now thread-safe, allowing one thread at a time to
+enter the library and protecting global data as necessary from concurrent use.
+Threaded toolkit applications are supported by the
+new interfaces
+.PN XtToolkitThreadInitialize ,
+.PN XtAppLock ,
+.PN XtAppUnlock ,
+.PN XtAppSetExitFlag ,
+and
+.PN XtAppGetExitFlag .
+Widget writers may also use
+.PN XtProcessLock
+and
+.PN XtProcessUnlock .
+.LP
+Safe handling of POSIX signals and other asynchronous notifications
+is now provided by use of
+.PN XtAppAddSignal ,
+.PN XtNoticeSignal ,
+and
+.PN XtRemoveSignal .
+.LP
+The application can receive notification of an impending block
+in the \*(xI event manager by registering interest through
+.PN XtAppAddBlockHook
+and
+.PN XtRemoveBlockHook .
+.LP
+.PN XtLastEventProcessed
+returns the most recent event passed to
+.PN XtDispatchEvent
+for a specified display.
+
+.NH 3
+Resource Management
+.XS
+\*(SN Resource Management
+.XE
+.LP
+Resource converters are registered by the \*(xI for window gravity
+and for three new resource types associated with session participation:
+RestartStyle, CommandArgArray and DirectoryString.
+.LP
+The file search path syntax has been extended to make it easier to
+include the default search path, which controls resource
+database construction, by using the new substitution string, %D.
+
+.NH 3
+Translation Management
+.XS
+\*(SN Translation Management
+.XE
+.LP
+The default key translator now recognizes the NumLock modifier.
+If NumLock is on and the second keysym is a keypad keysym
+(a standard keysym named with a ``KP'' prefix or a
+vendor-specific keysym in the hexadecimal range 0x11000000 to 0x1100FFFF),
+then the default key translator will
+use the first keysym if Shift and/or ShiftLock is on and will
+use the second keysym if neither is on. Otherwise, it will
+ignore NumLock and apply the normal protocol semantics.
+
+.NH 3
+Selections
+.XS
+\*(SN Selections
+.XE
+.LP
+The targets of selection requests may be parameterized, as described
+by the revised \fI\*(xC\fP.
+When such requests are made,
+.PN XtSetSelectionParameters
+is used by the requestor to specify the target parameters and
+.PN XtGetSelectionParameters
+is used by the selection owner to retrieve the parameters.
+When a parameterized target is specified in the context of a bundled
+request for multiple targets,
+.PN XtCreateSelectionRequest ,
+.PN XtCancelSelectionRequest ,
+and
+.PN XtSendSelectionRequest
+are used to envelop the assembly of the request.
+When the parameters themselves are the names of properties,
+the \*(xI provides support for the economical use of property atom names;
+see
+.PN XtReservePropertyAtom
+and
+.PN XtReleasePropertyAtom .
+
+.NH 3
+External Agent Hooks
+.XS
+\*(SN External Agent Hooks
+.XE
+.LP
+External agent hooks were added for the benefit of applications
+that instrument other applications for purposes of accessibility,
+testing, and customization. The external agent and the application
+communicate by a shared protocol which is transparent to the application.
+The hook callbacks permit the external agent to register interest
+in groups or classes of toolkit activity and to be notified of the
+type and details of the activity as it occurs. The new interfaces
+related to this effort are
+.PN XtHooksOfDisplay ,
+which returns the hook registration widget, and
+.PN XtGetDisplays ,
+which returns a list of the X displays associated with an application context.
+.bp