[Contents] [Index] [Next] [Previous]

Differences between OSF/Motif Version 1.1 and Version 1.2


This section provides a summary of the differences between OSF/Motif Version 1.1 and Version 1.2, and these fall into two categories: differences you can see and use, and enhancements to the Motif Window Manager.

Visual Differences

The following areas have been changed in Version 1.2.

Drag and drop

In compliance with the OSF/Motif Style Guide, Version 1.2 supports the drag and drop metaphor for data interchange, with full implementation of the drag and drop specification.

You can use drag and drop to move information between applications, and within an application. For example, to drag text from a text box, you point to the box and hold down button 2. The mouse pointer will change to a drag icon, and you can then move the mouse pointer and release the mouse button to drop the text.

For more informations on drag and drop see the OSF/Motif Programmer's guide and the on-line manual pages.

Note that if you want popup menus to appear when you use button 2 you will need to disable drag and drop.

Tear-off menus

You can now keep menus on the display for subsequent selections by using tear-off menus. Each tearable menu pane has a tear-off button. Pressing the tear-off button allows the pane to be torn off and dragged. It can then be placed by releasing the mouse drag button.

The Window Manager surrounds the tear-off menu pane with a frame and a title. If focus is shifted to a torn off menu's window pane, it will follow the standard Window Manager policy.

You enable tear-off behavior by setting the XmNtearOffModel resource to XmTEAR_OFF_ENABLED. The default is XmTEAR_OFF_DISABLED.

However, if tear-off menus are not working in your application, you should check that the tear-off functionality has been enabled in the resource database. To do this you must ensure that the XmNtearOffModel resource in the application's resource converter has been registered. You can do this by using the following function:

XmRepTypeInstallTearOffModelConverter

Insensitive visuals

Visual indications are provided to indicate whether you can enter input into a component. Although labels and buttons have had this behavior in previous releases, Version 1.2 extends this behavior to the XmList, XmText, XmTextField, XmScrollBar, and XmArrowButton widgets.

Other visual changes

As well as several pixels changing in the 3-D beveled look, Version 1.2 color generation routines also include minor changes.

In particular, the new XmScreen object contains resources that allow you to alter the generation of default colors to your requirements.

Also, to produce more contrast on color monitors some of the default values for thresholds have been adjusted.

All items in a list are now surrounded by a location cursor whenever a List widget has the focus and the current keyboard item is not visible.

There are also minor layout differences due to code improvements in the geometry management.

Title for frames

Version 1.2 allows a title widget to be specified in a Frame widget.

Audible warning

A new resource, XmNaudibleWarning, has been added to specify whether an audible cue should accompany a warning message. Text widgets will determine the value for this resource from the value of XmNaudibleWarning.

2-D menu traversal

The traversal arrows , , , and can now be used to navigate within a menu pane. The and arrows wrap between columns, and the and arrows post the previous or next menu pane when in the rightmost and leftmost column of the menu pane, respectively.

Changes for CUA and windows compliance

In Motif 1.2, pressing or <osfActivate> (usually bound to the keypad <Enter> key) no longer activates a button that is outside a menu. For example, it no longer pops up an option menu or activates a toggle button in a dialog box. However, pressing the space bar usually performs this function.

If there is a default button associated with an XmBulletinBoard, pressing (except in a multi-line XmText), , or <osfActivate> while focus is in the XmBulletinBoard activates the default button.

Motif Window Manager enhancements

The following changes have also been incorporated into the Motif Window Manager (mwm):

The Window Manager also includes the following new or enhanced resources:

feedbackGeometry
Sets the position of the move/resize feedback window. The default is the center of the screen.
frameBorderWidth
Now defaults based on the size and resolution of the screen.
iconPlacement
Takes the additional value tight for automatic icon placement with no gaps between icons.
maximumClientSize
Takes vertical or horizontal to limit the maximize operation to the corresponding direction.
moveOpaque
Controls whether an image of the window, or just an outline, is moved.
resizeBorderWidth
Now defaults depending on the size and resolution of the screen.
usePPosition
Takes values of on, off, or non-zero to control whether program-specified positions are used.

The Window Manager includes the following new and enhanced functions:

f.lower, f.raise, f.raise_lower
Include a within argument which allows a transient window; e.g. an application's dialog box, to be lowered within the stack of windows associated with that application, but not below the main (parent) window of the application. They also include a freeFamily argument which allows a transient window to be lowered below the parent window. Both arguments allow the transient window to move within its associated family stack, but do affect the position of the family stack in relation to other stacks.
f.minimize
This function is now allowed from an icon in an icon box.
f.restore
Restores a window to its previous state. Double-clicking on a root icon is bound to this function rather than to f.normalize.
f.screen
Traverses to the screen specified by arg. Legal values are next, prev, last, or a specific screen number.

There is also one new mwm action: . This behaves in a similar way to the f.next_key, except that the window is always raised regardless of the value of focusAutoRaise.