[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP DECwindows Motif for OpenVMS
Release Notes


Previous Contents Index

4.4 DECwindows Extensions to Motif (DXm)

This section contains information about the DECwindows extensions to the Motif Toolkit.

4.4.1 DXmFormSpaceButtonsEqually Restriction

V1.1

The convenience routine DXmFormSpaceButtonsEqually sizes and spaces all widgets or gadgets equally if they have a subclass of XmLabel or XmLabelGadget . The results are undefined if a widget or gadget is not a subclass of XmLabel or XmLabelGadget .

4.4.2 SVN Widget Does Not Support Horizontal Live Scrolling

V1.0

Horizontal live scrolling is not supported in the SVN widget.

4.5 X Window System Toolkit (Xt)

This section contains release notes pertaining to the X Window System Toolkit (Xt).

4.5.1 XtGetValues Function and Null Argument Values

V1.3

The XtGetValues and XtVaGetValues functions provide argument values through an argument array. The specification of Xt states that value members of argument structures must point to an appropriately sized object. However, the implementation of Xt has allowed the passing of null value members, provided the argument value does not exceed 32 bits in length. In this case, Xt writes the argument value directly to the argument value member.

Systems running DECwindows Motif Version 1.3 or later still support this usage but generate an Xt warning message similar to the following if a null value member is detected (where function_name is either XtGetValues or XtVaGetValues):


     X Toolkit Warning: NULL ArgVal in function_name

If this message is displayed when compiling or running an application, modify the application, and eliminate the use of null member values.

4.5.2 Composite Class Extension Record Run-Time Warning

V1.3

With X11R6.6, the boolean option allows_change_managed_set was added to the CompositeClassExtensionRec data structure. As a result of this change, applications built with a previous version of CompositeClassExtensionRec may display a warning message at run time similar to the following:


X Toolkit Warning:  widget class Calc has invalid CompositeClassExtension
record.

To prevent this message from displaying, rebuild the application with the latest version of the CompositeP.h file. Check that the value of the new option is as you desire. If the memory is initialized to zero, then it will have the same behavior as before. If uninitialized the behavior could be unpredictable.

4.5.3 XtOpenDisplay Routine and Case Sensitivity

V1.2--6

In some cases the application name in XtOpenDisplay comes from argv[0], which represents the name of the application on the command line.

This could be an issue in environments where case sensitivity must be preserved (such as when referencing ODS-5 system with case preservation enabled or when passing a user-defined argv list).

4.6 X Window System Library (Xlib)

This section contains information about the X Window System library (Xlib).

4.6.1 XPutImage Now Displays Wide Graphic Images Correctly

V1.5

An erroneous stop condition within XPutImage has been corrected. Applications that call this recursive Xlib procedure can now process and paint wide graphic images successfully without noticeable clipping or stack overflow conditions.

4.6.2 Xlib Routines Now Use Recursive Locks

V1.5

Display locks implemented in multithreaded Xlib applications are now implemented as recursive locks. When threading is enabled, any calls to XCheckIfEvent, XIfEvent, or XPeekIfEvent are enclosed in an XLockDisplay/XUnlockDisplay pair. This prevents deadlocks from occurring within a single thread when predicate functions are called by these events.

For example, without recursive locks, deadlocks can occur in threaded Motif applications and threaded Java applications that use the awt library.

4.6.3 Memory Leaks in XOpenDisplay and XCloseDisplay Corrected (Alpha Only)

V1.5

Small memory leaks that occurred when opening and closing display connections have been fixed. As a result, client applications that open and close many connections will not need as many virtual pages and can function with a reduced page file count and channel count quotas.

4.6.4 XOpenDisplay Calls No Longer Leave a Pending Wake (Alpha Only)

V1.5

The initial call of XOpenDisplay no longer leaves a pending wake status on the process, which caused the next LIB$WAIT or SYS$WAKE call to end immediately.

4.6.5 State of Event Flag Number 63 Changed Only After Reserved (Alpha Only)

V1.5

DECwindows Motif no longer changes the state of event flag number (EFN) 63 without first having reserved it. This problem previously occurred when opening a display, writing data (if the transport queue to the server was full), and reading data from the server on systems running DECwindows Motif for OpenVMS Alpha Version 1.3 or higher.

4.6.6 Xpoll.h Header File and ConnectionNumber Macro Restriction

V1.5

The current version of the Xpoll.h header file implements an interface to DECW$LCN_SELECT. This interface is incompatible with the C Run-Time Library (CRTL) definition of the select function. Specifically, DECW$LCN_SELECT does not implement support for the display ConnectionNumber macro when threads are not initialized.

If your application uses Xpoll.h and the ConnectionNumber macro, HP recommends that you replace this macro with the following to prevent conflicts from occurring:


#include <X11/Xlib.h>
#define DECW$LCNConnectionNumber(dpy) ((_XDisplayPriv)dpy->fd)

4.6.7 Changed Record Format for Connection Failure Error Message

V1.3--1

When a connection request is rejected, the X display server generates an informational message, which Xlib outputs to stderr. Previously, the format of the message output was one character per record. The format of the output has been changed to pass the entire message as a single record.

This change is only noticeable in error message files that are record oriented. For example, the changed format is visible in message files generated by the HP Digital Test Manager (DTM).

4.6.8 Retired and Changed Entry Points

V1.3

The following unsupported Xlib entry points have been removed from the DECW$XLIBSHR image:

XCMSCIELAB_VALIDSPEC
XCMSCIELUV_VALIDSPEC
XCMSCIEUVY_VALIDSPEC
XCMSCIEXYY_VALIDSPEC
XCMSCIEXYZ_VALIDSPEC
XCMSLRGB_RGBI_PARSESTRING
XCMSLRGB_RGB_PARSESTRING
XCMSTEKHVC_VALIDSPEC

Any application using these functions will need to be modified.

4.6.9 Meaning of XConnectionNumber and ConnectionNumber Changed

V1.3

The meaning of the XConnectionNumber function and ConnectionNumber macro has changed on systems running DECwindows Motif Version 1.3 or higher.

For previous versions of DECwindows Motif, both the function and macro returned an event flag number (EFN). The event flag was set when input arrived, with calls typically implemented as follows:


  sys$clref (ConnectionNumber (dpy));
  while (XPending (dpy) != 0) XNextEvent (dpy);
  sys$waitfr (ConnectionNumber (dpy));

For DECwindows Motif Version 1.3, a change has been made so that these items behave differently when support for multithreading has been enabled by a call to XInitThreads. With multithreading enabled, these items now return a logical connection number (LCN).

The LCN is in the read set state whenever there is input available from the server. It is in the write set state unless all output buffers are in use. The except state is reserved for use by HP.

To use an LCN instead of an EFN, replace the above implementation with the following:


int readState;
  while (XPending (dpy) != 0) XNextEvent (dpy);
  decw$lcn_select_one (ConnectionNumber (dpy), &readState);

Note that you must make the select call after the event queue has been cleared, since the LCN state reflects input from the server and does not include any events that might have been queued while handling replies.

You can force the ConnectionNumber macro to get the LCN value (which is always available) by including XLIB.H with the DECW_CONNECTIONNUMBER_IS_LCN macro set to true (1), for example:


#define DECW_CONNECTIONNUMBER_IS_LCN 1
#include <X11/Xlib.h>
.
.
.

This is useful when using this macro in a shared image or object library where the application must function the same whether or not threads have been initialized.

For more information on the LCN interface, see the HP DECwindows Motif for OpenVMS New Features manual.

4.6.10 Locale Support in OpenVMS Systems

V1.2--4

The locale support provided on systems running DECwindows Motif for OpenVMS Version 1.2--4 or higher is compatible with the locale support in the DEC C Run-Time Library. If you write internationalized applications using these functions in the locale environment, do the following:

  • For Xlib applications, include <X11/Xlocale.h>. If you include <stdlib.h>, you must do so before <X11/Xlocale.h>.
  • For Motif applications, <X11/Xlocale.h> is automatically included.
  • Turn on the following compilation flags:


    /define=(X_LOCALE,X_WCHAR,_WCHAR_T_,XLIB_XPG4_FUNCS)
    

4.6.11 XSelectAsyncEvent and XSelectAsyncInput Routines

V1.1

The XSelectAsyncEvent and XSelectAsyncInput routines allocate memory for the storage of AST delivery information. This memory is freed in the following ways:

  • If you close a display (XCloseDisplay), all the AST delivery information associated with all windows on that display is freed.
  • If you destroy a window (XDestroyWindow), the AST delivery information for that window is freed.

The AST delivery information for subwindows is not freed by XDestroyWindow.

If you want to turn off AST notification for all event types within a given window and also free the AST delivery information, the client application can call XSelectAsyncEvent or XSelectAsyncInput passing the event_mask argument equal to minus one (all bits set) and the ast_routine argument equal to zero.

Note

On systems running DECwindows Motif Version 1.3 or higher, XSelectAsyncInput and XSelectAsyncEvents are not supported if multithreading has been enabled by a call to XInitThreads. The equivalent functionality can be obtained by using threaded Xlib functions.

See HP DECwindows Motif for OpenVMS New Features for more information about using these functions in a multithreaded environment.

4.6.12 Command Procedure Builds .PEN Files

V1.0

To allow Pascal programs to inherit environment files for Xlib and Motif, execute the command procedure SYS$LIBRARY:DECW$PEN_BUILD.COM. This command procedure generates the DECW$XLIBDEF.PEN and DECW$MOTIF.PEN files. The .PEN files compile into Pascal programs faster than the provided .PAS files.

4.6.13 Parameter/Protocol Datasize Mismatches

V1.0

Several Xlib routines accept longword parameters that are not sent in their entirety in the X Protocol message to the server. In each case, the Xlib routine sends out only the least significant 16 bits of the parameter value. This is a constraint of the field size within the X Protocol message.

Table 4-4 lists routine names and the longword arguments that are sent only as 16-bit values.

Table 4-4 Routine Names and Arguments Sent as 16-Bit Values
Routine Name Routine Arguments
XAllocColorCells/ALLOC_COLOR_CELLS nplanes,npixels
XDrawArc/DRAW_ARC x,y,width,height, angle1,angle2
XDrawLine/DRAW_LINE x1,x2,x3,x4
XDrawPoint/DRAW_POINT x,y
XDrawRectangle/DRAW_RECTANGLE x,y,width,height
XDrawString/DRAW_STRING x,y
XDrawString16/DRAW_STRING16 x,y
XDrawText/DRAW_TEXT x,y
XDrawText16/DRAW_TEXT16 x,y
XFillArc/FILL_ARC x,y,width, height,angle1,angle2
XFillRectangle/FILL_RECTANGLE x,y,width,height

4.7 X Window System Extensions and Protocols

This section contains release notes pertaining to the X Window System extensions implemented for DECwindows Motif.

4.7.1 Using XCopyArea with XINERAMA

V1.3--1

Note that graphic expose events are now generated for XCopyArea requests. All programs that call the XCopyArea function must have graphics expose enabled at all times on the graphics context resource (gc) used in the request.

4.7.2 XINERAMA Does Not Correctly Report VisibilityNotify

V1.3--1

When applications display on a XINERAMA multihead system, the VisibilityNotify event does not properly report the state of the window. When a window is displayed and VisibilityNotify is selected, the state of the window is reported as Unobscured when in fact it may be Unobscured or PartiallyObscured. To prevent this from occurring, change the applications so that they treat VisibilityNotify events as PartiallyObscured.

Once the window has been displayed, no more visibility events are reported. For example, when a window that has VisibilityNotify selected is covered by another window, an event indicating that it is FullyObscured should be reported. This event is not sent.

4.7.3 EVI Extension and Colormap Conflicts

V1.3

The DECwindows X11 Display Server does not return colormap conflict information when the Extended Visual Information (EVI) extension is used to request information about available visuals. In all cases, the data returned indicates that no colormap conflicts exist.

4.7.4 Dead Mouse Support

V1.3

Dead Mouse capabilities previously available with the AccessX extension have been incorporated into the subset of features available with the X Keyboard extension (XKB). These capabilities are now collectively referred to as Mouse Keys.

Note that since the Dead Mouse functions were also made part of the X server in a previous version of DECwindows Motif, they remain available even when the XKB extension is not enabled.

4.7.5 AccessX Extension No Longer Supported

V1.3

Support for the AccessX keyboard extension has been removed. All functions provided by this extension (such as sticky keys) are available with the X Keyboard extension (XKB). See the HP DECwindows Motif for OpenVMS New Features for more information on this extension.

4.7.6 Group Validation Not Performed by Security and Application Group Extensions

V1.3

The validation of groups is not being performed by the Security (SECURITY) and Application Group (XC-APPGROUP) extensions. Although a group ID can be passed to XSecurityGenerateAuthorization, it is not being checked. Authorization is provided regardless of the group ID.

4.7.7 Do Not Remove Watch Procedures from Open ICE Connections

V1.3

Avoid removing ICE watch procedures while an ICE connection remains open. If a watch procedure allocates memory to an open connection, and the procedure is removed, the memory cannot be freed since the proper callback is not made to the watch procedure.

4.7.8 BAD_LOCAL_NODE Error When Using ICE

V1.3

The original transport implemented by DECwindows Motif ignored the node specification when using LOCAL as the network transport. With the ICE protocol, the node name must always either be a value of 0 or a string consisting of the system name. Since ICE uses the LOCAL transport, the BAD_LOCAL_NODE warning message is displayed when ICE attempts to verify the node specification.

4.7.9 SmsGenerateClientId Does Not Generate an ID

V1.3

The XSMP request SmsGenerateClientId fails to generate a client ID on any system that does not have an assigned DECnet or TCP/IP address.

4.7.10 Specifying Extension Include Files

V1.2

To ensure that programs that contain extension include files compile properly, add the logical name DECW$INCLUDE to the C include directory search list.

To add the logical name, enter the following command:


$ DEFINE DECC$USER_INCLUDE DECW$INCLUDE

4.8 X Window System Internationalization Library (Xnl)

This section contains information about the Xnl library.

4.8.1 xnl_parsedatetime

V1.2--5

xnl_parsedatetime (and its VAX binding, XNL$PARSE_DATE_TIME) accepts two-digit or four-digit years in the input argument XmString s (which is the date-time string to be parsed). Valid years in the two-digit format are in the range 70 to 99, which mean the years from 1970 to 1999. Values from 00 to 69 are invalid. Year 2000 and later must be specified in the four-digit format.

4.8.2 xnl_langinfo

V1.2--5

xnl_langinfo (and its VAX binding, XNL$LANGINFO) returns a string for date-time formatting when D_FMT or D_T_FMT is specified in the item argument. In the locales listed below, this function returns a formatting string containing %y. This formatting string should be used carefully after the year 2000, as %y indicates the two-digit year format.

  • es_ES Spanish
  • fr_BE French Belgium
  • fr_CA French Canada
  • iw_IL Hebrew
  • no_NO Norwegian

4.9 Transport Programming

This section contains information about the Transport interface.

4.9.1 User-Written Transports Not Supported

V1.3

With DECwindows Motif Version 1.3, significant changes were made to the DECwindows Motif transport library to accommodate multithreading and the communication needs of the Inter-Client Exchange (ICE) protocol, Low-Bandwidth X (LBX) proxy server, and Input Method servers. In particular, support for an alternate method of assigning numbers to server connections was added, as described in HP DECwindows Motif for OpenVMS New Features. Support for the logical connection number (LCN) interface is the only transport-related feature that will be published for external use.

The DECnet, TCP/IP, LAT, and local network transport interfaces have been updated, remain available, function as expected in the DECwindows Motif Version 1.3 or higher environment, and are compatible with the previous version of the client libraries. However, any custom, user-written transports built against previous versions of DECwindows Motif, will not function as expected and are expressly not supported on systems running DECwindows Motif Version 1.3 or higher. This includes transports built and linked against the following files:

SYS$LIBRARY:DECW$XPORTCOM.H
SYS$LIBRARY:DECW$XPORTCOM.MAR
SYS$LIBRARY:DECW$XPORTCOM.R32
SYS$LIBRARY:DECW$XPORTDEF.H
SYS$LIBRARY:DECW$XPORTDEF.MAR
SYS$LIBRARY:DECW$XPORTDEF.R32

These files have been removed from the kit and are no longer available. The VMS DECwindows Transport Manual will be archived and the new libraries will not be documented or made available publicly.

If you have implemented a custom transport and want to migrate that transport to the DECwindows Motif Version 1.3 or higher environment, contact your HP customer representative to develop a migration strategy.


Previous Next Contents Index