# Compaq DECwindows Motif
for OpenVMS
Release Notes

Previous | Contents | Index

## 5.3.6 Enhancing Hold-Screen Response Time

V1.1

If the Hold Screen key response time is too slow, add the following lines to your DECW$TERMINAL_DEFAULT.DAT file:

    DECW$TERMINAL.main.terminal.syncFrequency: 1
    DECW$TERMINAL.main.terminal.batchScrollCount: 1

Using this resource can affect the performance of the DECterm window. The actual impact on performance varies from site to site. You can trade off scrolling speed to hold-screen response time. A faster hold-screen response results in a slower scrolling speed. The default values for these resources are 10 and 0, respectively.

# 5.4 Managing DECwindows Motif for OpenVMS Systems

This section contains documentation enhancements and corrections to the Managing DECwindows Motif for OpenVMS Systems manual.

## 5.4.1 Global Symbols

V1.2--3

The following additional global symbols are available in the Compaq DECwindows Motif for OpenVMS product:

- DECW$CONSOLE_SELECTION
  Specifies how to display operator-messages options.
- DECW$CONSOLE_GEOMETRY
  Specifies the value of the -geometry option in the DECW$MESSAGEPANEL.EXE command line.

For information about using these symbols, refer to Section 3.4.1.1 in these Release Notes. Refer to the chapter "Using DECwindows" in Managing DECwindows Motif for OpenVMS Systems for the complete list of global symbols.

## 5.4.2 Security Options

V1.2

In the Session Manager Security Options dialog box, place the node name within quotation marks if the name contains any of the following:

- Reserved characters: space, tab, comma (,) or double quotation mark (")
- Double colon (::)
- A colon (:) as the final character in the node name

Session Manager automatically adds quotation marks to the node name if they are needed, unless the node name begins with a double quotation mark. If the node name begins with a double quotation mark, Session Manager assumes that the user has already quoted the node name and does not change it.

Within a quoted string, a double quotation mark should be replaced by two double quotation marks (" "). For example, the quoted string "DEC:.zko."my node"" should be changed to the following:

    ("DEC:.zko.""my node""").

## 5.4.3 Displaying a Customized Logo

V1.1

By default, if there is no DECwindows Motif license registered for the SYSTEM account, DECwindows does not display customized login logos. This is a problem on systems with DECwindows Motif personal-use licenses that do not include SYSTEM on the list of authorized DECwindows users.

To display a customized logo without a DECwindows Motif license for SYSTEM, add the following definition to the SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COM file:

    $ DECW$LOGINLOGOSUB == "TRUE"

Note If the SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.COM file does not exist, copy it from the file SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.TEMPLATE.

After editing the setup file, restart DECwindows Motif using the following command:

    $ @SYS$MANAGER:DECW$STARTUP RESTART

DECwindows Motif login starts the logo process as a subprocess instead of as a detached process. The license check sees that the logo process is a child of the login process and that the X connection is opened.

## 5.4.4 Enabling and Disabling Access Control

V1.0

DECwindows Motif does not enable access control by default. Instead, it uses the access control set by the server. The DECwindows X11 display server enables access control at startup time.

To force the DECwindows Session Manager to enable or disable access control explicitly at login time, you can define one of the following logical names:

    $ DEFINE/SYSTEM/EXECUTIVE DECW$LOGIN_ACCESS_CONTROL ENABLE

    $ DEFINE/SYSTEM/EXECUTIVE DECW$LOGIN_ACCESS_CONTROL DISABLE

If the logical name is not defined, or if it is defined to some other value, such as "SERVER", DECwindows login neither enables nor disables access control.

In most cases, it should not be necessary to define the logical name.

# 5.5 DECwindows Motif for OpenVMS Guide to Non-C Bindings

This section contains documentation enhancements and corrections to the DECwindows Motif for OpenVMS Guide to Non-C Bindings.

## 5.5.1 GET_CHAR_STRUCT Function

V1.2--3

The access related to the char_struct argument for the XLIB GET_CHAR_STRUCT function is incorrectly documented. The correct access is write.

# 5.6 VMS DECwindows Guide to Xlib (Release 4) Programming: VAX Binding

V1.2

Example 1-1 in the VMS DECwindows Guide to Xlib (Release 4) Programming: VAX Binding is incorrect. To correct the problem, change the following two lines in the section "Create the WINDOW_1 window":

    WINDOW_1X = (X$WIDTH_OF_SCREEN(DPY) - WINDOW_1W) / 2
    WINDOW_1Y = (X$HEIGHT_OF_SCREEN(DPY) - WINDOW_1H) / 2

The example should read as follows:

    WINDOW_1X = (X$WIDTH_OF_SCREEN(SCREEN) - WINDOW_1W) / 2
    WINDOW_1Y = (X$HEIGHT_OF_SCREEN(SCREEN) - WINDOW_1H) / 2

Example 3-1 in the VMS DECwindows Guide to Xlib (Release 4) Programming: VAX Binding is incorrect. To correct the problem, change the following two lines:

    WINDOW_1X = (X$DISPLAY_WIDTH_OF_SCREEN(SCREEN) - WINDOW_1W) / 2
    WINDOW_1Y = (X$DISPLAY_HEIGHT_OF_SCREEN(SCREEN) - WINDOW_1H) / 2

The example should read as follows:

    WINDOW_1X = (X$DISPLAY_WIDTH_OF_SCREEN(DPY) - WINDOW_1W) / 2
    WINDOW_1Y = (X$DISPLAY_HEIGHT_OF_SCREEN(DPY) - WINDOW_1H) / 2

# 5.7 DECwindows Extensions to Motif

This section lists documentation corrections and enhancements for the DECwindows Extensions to Motif document.

## 5.7.1 DXmNlayoutDirection Resource Constants

V1.2--3

The section on DXmNlayoutDirection Resource in Chapter 2 lists the following constants:

- DXmLAYOUT_LEFT_DOWN
- DXmLAYOUT_LEFT_UP
- DXmLAYOUT_RIGHT_DOWN
- DXmLAYOUT_RIGHT_UP

Note that the following constants are not currently available for the DXmNlayoutDirection resource:

- DXmLAYOUT_LEFT_UP
- DXmLAYOUT_RIGHT_UP

The introduction to Table 2--1 is incorrect. Table 2--1 describes the effect of the constants DXmLAYOUT_LEFT_DOWN and DXmLAYOUT_RIGHT_DOWN on the functions.

V1.2

In Section 2.2 of the DECwindows Extensions to Motif manual, the description of DXmChildren indicates that the routine can be used to learn the length of widget_list.

The documentation is incorrect. The sentence should read, "You can use the DXmNumChildren routine to learn the length of the widget list returned by DXmChildren."

# 5.8 DECwindows Motif Guide to Application Programming

This section lists documentation corrections and enhancements for the DECwindows Motif Guide to Application Programming manual.

## 5.8.1 UIL Source Code for the OpenVMS DECburger Application

V1.2--3

The introduction to the section in Chapter 4 called "Creating the Help Widget with UIL", which introduces Example 4--6, "UIL Help Widget Implementation," does not clearly state that the complete UIL source code for the OpenVMS DECburger application is included in DECW$EXAMPLES on OpenVMS systems.

## 5.8.2 Help Widget Implementation Code

V1.2--3

In the title of Example 4--7, "Help Widget Implementation---C Language Module", DECBURGER.C should be added to the title as follows:

"Help Widget Implementation---C Language Module (DECburger.C)"

## 5.8.3 Help Widget Implementation---Callbacks

V1.2--3

The title of Example 4-8 should read as follows:

"Help Widget Implementation---Callbacks (DECburger.C continued)"

## 5.8.4 Using UIL to Create the Help Widget

V1.2--3

The title of Section 4.10, "Using the Toolkit Help Widget Creation Routine," does not accurately reflect the contents of this section. The title should read, "Using UIL to Create the Help Widget".

The introductory paragraph to Example 4--9 in the section called "Using the Toolkit Help Widget Creation Routine" is incomplete. The information should state the following:

"The code in Example 4--9 is included in DECburger.C but is commented and will not be compiled when the example program is built."

The implementation in this example is not complete; it requires some sections from Examples 4-7 and 4-8.

To summarize, the documentation should state the following information:

- Examples 4-6 and 4-7 are UIL code (DECburger.UIL(D)) that, when combined, create the DECburger.EXE.
- Example 4-8 is C code for DECburger.EXE.
- Example 4-9 is C code for a Toolkit example.

# Appendix A
OSF/Motif Release 1.2 Release Notes

The release notes in this document are based on Chapter 3 of the OSF/Motif Release Notes for Release 1.2 and include a few other notes relevant to programmers developing OSF/Motif applications. Most of the notes describe changes made for OSF/Motif Release 1.2. The first two notes discuss performance improvements and information about backward compatibility.

These release notes support the OSF/Motif software currently provided with the Compaq DECwindows Motif for OpenVMS product.

# A.1 Performance Improvements

The Open Software Foundation set as its goal for OSF/Motif Release 1.2 to improve performance where possible and, at a minimum, to not allow it to degrade below the performance of OSF/Motif Release 1.1.

Performance testing was done in three areas:

- Aspects obvious to end users
- Data space usage
- Memory leakage

The performance of user-perceptible events such as posting and unposting dialog boxes and pop-up menus are comparable or better than the performance for OSF/Motif Release 1.1.4. A significant improvement was made for scrolling inside a Scrolled Text region that contains a large amount of test.

Data space usage has improved throughout the OSF/Motif Toolkit, particularly for the Text widget. In some cases, data space usage has been reduced by as much as 40%. Also, the memory used for the text in a Text widget is now correctly reduced when that text is replaced by a smaller amount of text.

Memory leakage has been reduced to a minimum for multiple creates and destroys of all Toolkit widgets. Although the Motif tests showed small memory leaks, the OSF believes that this amount of memory is required as part of the startup overhead and is not a true memory leak.

The OSF did find some memory leaks that they plan to fix in a future release. Three widgets---File Selection Box, Command, and Drawn Button - leak approximately 500 bytes of memory per instance.

# A.2 Backward Compatibility

The OSF tested OSF/Motif Release 1.2 for both link-time compatibility as well as visual and behavioral compatibility.

## A.2.1 Visual and Behavioral Compatibility

The OSF ran automated tests that compared current visuals with those recorded using OSF/Motif Release 1.1.4 libraries. Once all differences between the Release 1.2 and Release 1.1.4 versions were accounted for, the visuals were rerecorded using Release 1.2 visuals. These new recorded visuals were used in all subsequent tests.

The OSF believes that Motif Release 1.2 is visually and behaviorally compatible with Release 1.1.4. However, they have made extensive improvements to the Traversal and Geometry Management algorithms that result in some differences between those versions. These differences reflect efforts to fix defects in the earlier release.

For example, one such modification involves the new policy in which an initial size set for a manager widget in an application is now honored by the Toolkit. In OSF/Motif Release 1.1, applications set the initial size for a manager widget, but did not, in fact, use that size. In Release 1.2, Motif now uses that size setting and the initial layout is changed accordingly.

# A.3 Changes and New Features for OSF/Motif Release 1.2

This section summarizes changes and new features that the OSF has made to OSF/Motif Release 1.2. Detailed information about these modifications is contained in the Motif reference pages and the Motif Release 1.2 revisions of following books:

- OSF/Motif Style Guide
- OSF/Motif Programmer's Guide

The following sections discuss the OSF/Motif Release 1.2 enhancements.

## A.3.1 General Toolkit Changes

This section discusses the changes made to the overall OSF/Motif Release 1.2 Toolkit.

### A.3.1.1 Include File Changes

The following header files that were in OSF/Motif Release 1.1 are obsolete in Release 1.2:

- ExtObject.h
- Traversal.h
- VaSimple.h
- VendorE.h
- VendorEP.h

A new public header file, XmAll.h, has been added to OSF/Motif Release 1.2. This header file includes all the documented header files.

## A.3.2 Change in XT Translations

As a result of fixing a problem in the XT translation code (Patch 25 for X11 R5), the translations in Xt are now handled strictly and no longer accept any possible match as they did before. This change has caused a change in the behavior of the QATS and Motif VTS test suites, which now make incorrect assumptions for certain keyboards, such as those that have the arrow keys defined in the keypad. Other Motif applications might be affected as well.

You can avoid this problem by creating a file to redefine the bindings for the keys in question and then passing that file to the xmodmap utility.

The following example changes the bindings for the keypad keys that match the arrow keys so that only the arrow keys are produced, not the keypad numbers. The new definitions allow the application to use modifiers with the arrow keys.

    !
    ! Always force:
    !   KP_2 = Down
    !   KP_8 = Up
    !   KP_4 = Left
    !   KP_6 = Right
    keycode 120 = Down
    keycode 76  = Up
    keycode 98  = Left
    keycode 100 = Right

## A.3.3 ANSI C Compliance

All references to caddr_t have been changed to XtPointer. This change affects all callback routines and any other routines that reference caddr_t. The OSF made this change so that OSF/Motif Release 1.2 would be compliant with the ANSI C specification.

## A.3.4 Display and Screen Specific Data

Motif now has an XmDisplay object that supports per-display data and resources. An XmScreen object has been added that supports per-screen data and resources.

## A.3.5 Drag and Drop

OSF/Motif Release 1.2 supports the drag and drop metaphor for data interchange. The drag-and-drop specification has been fully implemented. See the Release 1.2 version of the OSF/Motif Programmer's Guide for information on the drag and drop interface.

Note If you want to use Btn2 to have pop-up menus pop up, drag and drop will not function properly. You need to disable drag and drop in such instances.

## A.3.6 Tear-Off Menus

With tear-off menus, the user can retain menus on the display area for subsequent selections. Each tearable menupane is a tear-off button. When the mouse drag button is pressed on the tear-off button, the pane tears off and can be dragged and then placed by releasing the mouse drag button. The window manager surrounds the tear-off menupane with a menu button and a title. Shifting focus to a torn-off menu's windowpane follows the standard window manager policy.

Tear-off behavior is enabled by setting the XmNtearOffModel resource to XmTEAR_OFF_ENABLED. (The default is XmTEAR_OFF_DISABLED).

Note that there is no resource converter preregistered by XmNtearOffModel. To allow the tear-off function to be enabled through the resource database, an application must register its own resource converter for the XmNtearOffModel resource using the XmRepTypeInstallTearOffModelConverter function.

The converter is not automatically installed because many applications use map or cascading callbacks to dynamically set the sensitivity of items within their menus. However, if a tear-off menu is mapped, the sensitivity of its menu items must be changed immediately to reflect changes in other application states. Existing applications are unlikely to change menu item sensitivity in this manner. Thus, allowing their menus to be torn off could result in operations being enabled at unexpected times. If a user activates one of these menu items, the application can crash or the persistent data can be corrupted.

## A.3.7 Insensitive Visuals

Motif provides visual indications to show whether a component can respond to input from users. Labels and buttons have had this behavior in previous Motif releases. In OSF/Motif Release 1.2, this behavior has been extended to the following widgets:

- XmArrowButton
- XmList
- XmScrollBar
- XmText
- XmTextField

## A.3.8 Other Visual Changes

OSF/Motif Release 1.2 has made other visual changes as follows:

- Several pixels have changed in the three-dimensional beveled look.
- Minor changes have been made to the color generation routines. In particular, the new XmScreen object contains resources that allow for tailoring the generation of default colors. Some of the default values for thresholds have been adjusted to produce more contrast on color monitors.
- Motif now adds a location cursor to surround all items in a List whenever a List widget has the focus and the current keyboard item is not visible.
- There are minor layout differences because of fixes in geometry management.

## A.3.9 Titles for Frames

In OSF/Motif Release 1.2, you can specify a Title widget in a Frame widget. The release has added the following new constraint resources for specifying the position and alignment of the title in the Frame:

- XmNchildHorizontalAlignment
- XmNchildHorizontalSpacing
- XmNchildType
- XmNchildVerticalAlignment

## A.3.10 Audible Warning

The VendorShell has a new resource, XmNaudibleWarning, that can specify whether an audible cue should accompany a warning message. Text widgets determine the value for this resource from the value of XmNaudibleWarning.

## A.3.11 Color Enhancements

The following three resources have been added to the XmScreen widget so that users can specify the default background color and thresholds for shadow calculation:

- XmNlightThreshold
- XmNdarkThreshold
- XmNforegroundThreshold

Motif has added the XmChangeColor function that changes the background and other colors for a specified widget.

## A.3.12 Baseline Alignment

Motif has added two functions for baseline alignment. The XmWidgetGetBaselines function determines the position of the widget's text baseline. The XmWidgetGetDisplayRect function determines the size and position of the bounding box for the widget's character string.

## A.3.13 Expanded Traversal Set

In OSF/Motif Release 1.2, you can use more widgets to support traversal using the keyboard. For example, inside a tab group, users can now use the arrow keys to traverse to all control descendants that are not contained within a nested tab group and that are eligible to receive focus, even if the controls are not direct children of the tab group.

## A.3.14 Two-Dimensional Menu Traversal

With OSF/Motif Release 1.2, the left, right, up, and down traversal arrows now navigate within a menupane. The up and down arrow keys wrap between columns. The right and left arrow keys post the previous or next menupane when they are pressed in the rightmost and leftmost column of the menupane, respectively.

## A.3.15 Input Focus

OSF/Motif Release 1.2 has added the XmNinitialFocus resource to the Manager class. This resource specifies the first widget to receive input focus. This resource can only specify a widget; it is ignored for all pop-up menus, menubars, option menus, and pull-down menus.

## A.3.16 Traversal Access Functions

OSF/Motif Release 1.2 has added the following new functions to support better interaction with keyboard traversal:

- XmGetFocusWidget
- XmGetTabGroup
- XmGetVisibility
- XmIsTraversable
- XmIsVisible

The XmTrackingLocate function has been modified to do the following:

- Field all events, not just a button press.
- Return on any keystroke or button press.
- Be called for nonsensitive widgets.

In addition, the XmTrackingEvent function has been added. This function is similar to XmTrackingLocate, except that it returns a pointer to the X event.

## A.3.17 Virtual Keys

OSF/Motif Release 1.2 has added the XmTranslateKey function that allows applications to override the default XtKeyProc to handle Motif virtual keys.

Motif defines two new virtual keysyms:

- osfPageLeft
- osfPageRight

You must have the X11 Release 5 XKeysymDB installed in /usr/lib/X11 to use these new virtual keys. Otherwise you get a warning message on application startup. Specify the following information in the XKeysymDB file:

osfPageLeft | :1004FF40
osfPageUp | :1004FF41
osfPageDown | :1004FF42
osfPageRight | :1004FF43

To comply with the OSF/Motif Style Guide, the default binding for osfMenu has been changed from <key>F4 to Shift<key>F10.

In X11 Release 5, the HP keysyms in the XKeysymDB file have the prefix hp. This prefix is not reflected in the HP bindings file in the /bindings directory. If you are using an X11 Release 5 XKeysymDB file, you might see warning messages at application startup. To eliminate these warning messages, add the hp prefix as follows to the appropriate lines in the file:

osfDelete : | <key>hpDeleteChar
osfInsert : | <key>hpInsertChar
osfPrimaryPaste : | <key>hpInsertLine
osfQuickPaste : | <key>hpDeleteLine

OSF/Motif Release 1.2 has a new client, xmbind, that sets up the virtual bindings for use by Motif applications. Since virtual binding is automatically set up at Motif Window Manager (MWM) startup, you only need to use xmbind if MWM is not used or if you need to change the virtual bindings without restarting MWM.

Virtual bindings can now be specified by individual vendors. If there is no .motifbind file in the home directory, you can use the xmbind.alias file to provide a mapping from the server vendor name to the bindings file. You can set up user vendor bindings as well as system-wide vendor bindings.

Previous | Next | Contents | Index