# Release notes for LessTif

## Release 0.94.0 (December 3, 2004 danny)

- Fix memory leaks.
- Fix a problem in DebugUtil.c - it didn't compile with --enable-production.
- Controversial hack to accept accelerators even if NumLock and/or CapsLock is on.
- Fix to _XmGetFocusData to get focus data from MenuShells, which are not derived from VendorShell.
- Allow popup menus to "stick" if button-up is within double-click-interval of button-down (to behave more like Motif).
- A button grab fix.
- Another fix that I must have never submitted diff for (don't ever let MemWidget get set to, for example, a seperator because we always assume it's a label of some kind).
- More scroll wheel support - this is in XmScrolledWindow which now automatically adds translations to its children for this to happen.
- Cleanup in some memory allocation code, hope to fix more leaking.
- Configure.in was trying to figure out whether it could write into the autoconf macro directory; that was wrong as Martin Simmons pointed out. Fixed this, also make sure to feed the directory info to the lesstif.spec file.
- Fixes by Dave Williss for the option menu resize problem that he reported, and for (bug #1060425) an option menu highlight problem.
- Apply the second batch of Xpm fixes for memory leaks - xorg-681-CAN-2004-0914.patch
- Fix build problem.

## Release 0.93.96 (September 26, 2004 danny)

- Changes to make the build system work again.
- From now on, LessTif only builds as a Motif-2.1 clone. The 1.2 compatibility build has (finally!) been removed after several years of 2.1 being the default build. Do note that this may produce incompatibilities between this version and earlier releases if you were still using the 1.2 mode.
- Compile a debugging function for printing stack traces only when the supporting functionality is available.
- Don't use /bin/false etc; that kind of stuff is sometimes on other places such as /usr/bin .
- A couple of XmList fixes.
- Fix XmForm's geometry_manager() to cope with XtGeometryAlmost situations better.
- Added scroll wheel support.
- Fixes by Dave Williss for some XmFrame bugs.
- Workaround/fix for pushbuttons not handling their resize when the application uses SetValues to set an acceleratorText.
- The recent Xpm security fixes.
- Fix for uninitialised memory problems.

## Release 0.93.95b (August 18, 2004 danny)

- Changes to make the build system work again.

## Release 0.93.95 (August 6, 2004 danny)

- Cleanup of the configure.in to remove some dead code and add a couple of comments.
- Remove support for building a Motif-1.2 compatible version. This only keeps generating problems for users, there's no added value.
- Also remove support for building a Motif-2.0 compatible version.
- Work on the clipboard code to make it work with xclipboard. Nedit and DDD users were reporting problems.
- Bugfix for drag and drop code.
- Get XmText to use the character width estimations described in the documentation.
- A fix to the CascadeButton widget and gadget code for 64-bit systems. Lesson learned : using the wrong type can create havoc even on dummy variables.
- XmClipboardBeginCopy() wasn't present in a 2.1 build. Fix that for compatibility reasons.
- Changes to autoconf macros to conform to autoconf 2.59's new requirements.
- Remove reference to <fontconfig/fontconfig.h>, they're no longer needed.
- Prevent a crash in Form when no widget is passed but XmATTACH_WIDGET is specified.
- Fix from Herbert Xu to fix a long outstanding bug with nedit modality. (See patch #936869.)
- Fixes by Dave Williss to get XmString to cope with Unicode in a limited way.
- Fixes by Dave Williss for the (Microsoft) Windows platform. One of the consequences is that the macro XMLIBEXPORT is used in many places. On the Windows platform, we configure the build so this means something to the compiler; on others it is blank.
- Fix by Dave Williss for XmForm to cope with XtGeometryAlmost.
- Fixes for geometry in XmRowColumn and XmScrolledWindow.
- Fixes for memory problems detected by Purify.
- Fix for an off by one error in XmList.

## Release 0.93.94 (November 27, 2003 danny)

- Yet another attempt to fix nedit's grab behaviour problems. (that are caused by lesstif).
- Rename a private function to avoid namespace pollution.
- Don't bother with terror.hungry.com in the make_release script.
- Implement Add Mode in XmText. This means that the selection doesn't disappear when moving the cursor around. You can toggle this by using Shift-F8.
- Fix some memory leaks.
- Fix for an invalid XmStringFree in XmList.
- Fix an X server hang when clicking in an option menu.
- Fix an extended selection problem in XmList.
- Fix for gadget colour problems, and bugfixes on the fix (it was wrong for a while).

## Release 0.93.46 (July 18, 2003 danny)

- Hopefully this fixes both of the nedit grab issues.
- List hightlight problem fix.
- Fixes for XmText(Field)GetSubstring bugs.
- Fix for a 2.0 build problem.

## Release 0.93.44 (June 30, 2003 danny)

- Fix for a memory leak in TextF.c
- Quick fix to try to implement overstrike behaviour in XmText.
- Fix for bug #736415 (XmText widget still buggy) - the code that determined a string length claimed to take tabs into account but didn't correctly do so.
- Bug #721016. In an OptionMenu, while holding down the mouse left button, dragging it onto the label gadget (label of the OptionMenu) and then releasing it causes the X Server to hang.
- Fix for bug #721010 "text is displayed in the reverse order in TextWidget" Selecting the text by double clicking on it and then deleting it with a backspace in a TextWidget causes the text typed afterwards to be displayed in the reverse order. This was happening because the cursor position was going negative inside _XmTextDelete function and due to this, the newly typed character was getting added on the left side of existing text rather than on the right side until the cursor position becomes positive.
- Patch provided by Herbert Xu : this patch fixes comparison bugs on platforms with unsigned char as the default.
- Patch by Peter Breitenlohner - see bug #711442.
- Fix the problem reported by DIG in textf/test12. (when I click on ``enter text'' button, then selection of ``textf'' field (filled with 23.5) become "dirty" -- this field get filled up with apparently random characters and get highlighted. )

## Release 0.93.40 (February 6, 2003 danny)

- Start work to extend LessTif to work with the Xft library (see http://fontconfig.org) so we can work with anti- aliased fonts. Hopefully we can feed some of this work into OpenMotif.
- Include configuration/build support for the Xft library.
- Fix a bug in _XmStringDraw that crept in when the support for renditions and rendertables was built. It showed in OpenDX as not correctly centering text in a label widget.
- Fix grab problem with nedit (bug #566315 "NEdit - new window ignores all input") by going back to the fix as it was in Vendor.c version 1.83.

## Release 0.93.36 (August 6, 2002 danny)

- Fix XmText, XmTextField problems with highlighting, that were introduced by adding visual appearance to indicate that the widget is insensitive.
- Fix a random unselect colour in ToggleBG.
- Fix XmText strangeness when editing. Some text would appear in strange places, especially after deleting some lines and then adding stuff again. (Reported about OpenDX, also bug #215484.)
- Fix XmText selection bugs.
- Fix XmForm geometry bugs.
- Clean up the pixmap cache when a XmScreen gets closed.
- Fix XmText wrapping bug.
- Add <Xm/IconH.h> file.
- Fix for XmMainWindow not keeping track of destroyed children.

## Release 0.93.34 (May 19, 2002 danny)

- XmContainer fixes (to make XmOUTLINE mode, which displays a tree of children widgets, work well enough to get Xplore and meditres happy).
- XmIconGadget fixes.
- Initial implementation of the CareParentVisual Trait.
- Begin work on XmSPATIAL layout in XmCONTAINER. Implementation seems to work with Xplore now.
- Drop the 2.0 version of ManagerP.h, there was no obvious need for it.
- Change the memory allocation of XmFontList and XmFontListEntry. Our implementation treated them as (almost) the same, they've now been converted into something that looks like XmRenderTable and XmRendition. This is also true for the 1.2 version of LessTif, even though that doesn't offer the XmRend* API's. We can do this because the structure of XmFontList and XmFontListEntry is internal to LessTif so this is really none of your business.
- Additionally, as described in Anthony's tip 2 implement shared, reference counted, XmFontListEntrys.
- Start implementing XmRenderTable, XmRendition, XmTabList. Look at test/Xm-2.0/rendition for a multi-coloured list demo.
- Bugfixes for FileSB, RadioBox
- Make mwm to read the appropriate configuration files
- Initial implementation of _XmMapKeyEvents() as described in Anthony's tip 15
- Quite a few bugfixes
- Support for XmNunselectColor.
- Modal dialog behaviour improvements.
- XmText and XmTextField now show a visual indication if they're insensitive.
- XmText and XmTextField now use shared GC's (XtAllocateGC instead of XCreateGC).
- Move some test directories from test/Xm into test/extra, because they're really different beasts than the other stuff in test/Xm.
- Fix the build for automake 1.6.* compatibility.

## Release 0.93.18 (December 20, 2001 mai)

- Various small fixes
- Enhancements to Container widget

## Release 0.93.14 (October 24, 2001 danny)

- Nothing to report yet.

## Release 0.93.14 (October 24, 2001 danny)

- Work in progress on XmContainer.
- Build system fix for 1.2 version.

## Release 0.93.12 (September 26, 2001 danny)

- XmSpinBox fixes.
- XmSimpleSpinBox : simplistic implementation. This should become a complete widget, probably copied from XmSpinBox.
- More small 2.x compatibility fixes (add missing calls as stubs at least)
- XmObjectAtPoint() had wrong signature and was dealing with Gadgets only
- Try to use automake 1.5.x, autoconf 2.5x, libtool 1.4.x
- Use XmStringCreateLocalized() to convert widget name into a label string if we're in the Motif 2.* version; this makes newlines work. Undocumented feature of Motif 2.*, documented in SF bug #456132.
- Install string to tearoffmodel converter by default if Motif 2.*, another undocumented feature of Motif 2.*.
- Rename a couple of documentation files (e.g. NOTES to ReleaseNotes.html).
- Fixes in IconGadget and Container.
- Fix installation process. Now builds/installs out of the box on all platforms supported by libtool
- Drop redundant files from distributions (source tarballs)

## Release 0.93.0 (August 7, 2001 danny)

- Note that this release is still based on older versions of the auto* tools (libtool 1.3.5, automake 1.4-p4, autoconf 2.13) because of trouble that we have to reliably get all the recent versions to work across all the platforms currently used by the core team. Some platforms - e.g. NetBSD 1.5.* - seem to suffer from this. Our only advice currently is to obtain recent versions of libtool and autoconf, and to use the CVSMake script to build LessTif based on that. We hope we can resolve these issues in the near future.
- Bugfixes and further development of DtPrintSetupBox.
- Support for XmTextFieldSetHighlight()
- Bugfixes and an additional resource for XmSpinBox.

## Release 0.92.98 (July 28, 2001 danny)

- Enhancements for the docs (FAQ, Installation Docs, manpages)
- Update our list of platforms where LessTif can be build on
- mwm fixes/enhancements from Andrei Rezvov <rezvov@niisi.msk.ru>
- Drop inter-library dependencies (any libtool 1.4 related features)
- Add checks whether to link against -lXp -lXext when using 2.1 Motif libraries (e.g. clients, in our test/ tree)
- Fix dmalloc debugging support (within configure script)
- Add some files missing from our test/ tree in the tarballs
- Smaller configuration and Makefile issues (portability fixes)
- Remove support for configuring and building Xlt and Xbae from within the LessTif distribution; they will be treated as separate packages from now on. We've been wasting entirely too much time on complexities caused by this lately. No more, I hope.
- Various fixes for (potential) memory corruption

## Release 0.92.32 (June 2, 2001 danny)

- Small code fixes to help building on some systems
- Use new libtool version 1.4 and automake 1.4-p1
- Install more machine-indepedent files in $(prefix)
- Continued work on Xbae, version 4.9.0 was not working as well as expected.
- Added the old XbaeMatrix home page in lib/Xbae/doc.
- Added scripts/sf_cron.sh which is run periodically from cron on a shell server on sourceforge.net to update the web page from CVS. The result is that now http://lesstif.sourceforge.net and http:://www.lesstif.org are identical.
- Removed all the support in Xbae for Motif versions lower than 1.2.
- Move the manual pages's installation to $(exec_prefix)/man, this is also where they're moved in the RPM installation. This makes the lesstif.spec file more transparent.
- Release Xbae 4.9.0

## Release 0.92.26 (March 26, 2001 mai)

- Fixes for small problem with List widget. More work required on this ...
- Fixes for some recently introduced bugs within configure. Now link libXm* against -lm if ANSI C math stuff is hidden there
- Small Scale widget fix (rounding problem)
- Added two stubs for missing 2.x interfaces. On stub level we should be very close to a complete 2.1 set now
- Fixes by Kazuyuki Funada, mostly for i18n.
- Fix and add more (incomplete) man pages to the install target
- Link our shared libraries against the necessary system libraries (e.g. libXt, libX11) to hardcode the dependencies
- Rename libDt to libDtPrint, this appears to be what it's called. Remove the print_screen field from struct DtPrintSetupData, the Motif 2.1 manual pages (e.g. about XmPrintSetup) are misleading about libDtPrint.
- Add -lMrm to the Xlt tests, this is necessary as SciPlot now uses Mrm.
- Make build option --with-dmalloc to work again properly
- Make more debugging functions available in a PRODUCTION build (no performance penalty)
- Debugging output (DEBUG_FILE env var) is now always explicitly unbuffered and can now be sent to "stdin"/"stderr" as well
- The environment variable controlling which files send debugging output has been renamed to DEBUG_SOURCES and now accepts a blocking entries
- Debugging output can now be en-/disabled upon runtime. (env vars DEBUG_TOGGLE, DEBUG_SIGNAL)
- Xbae : removed the #ifdefs controlling the variable height code and the 24 bit code. From now on these are always compiled.

## Release 0.92.6 (Dezember 21, 2000 mai)

- Fixed a couple of configuration issues (dependencies on GNUMake; incomplete check for gethostname(); drop non-standard str(n)casecmp() if not necessary; check for a HTML to Text converter; ...)
- Fixed CVSMake scripts (checks for M4, HTML to Txt converter)
- Increase portability of our scripts/man2html utility

## Release 0.92.0 (Dezember 14, 2000 mai)

- Build/Install Uil libs and Headers (and tests) by default.
- Fixed some FontList interfaces to conform to the docs. Might fix memory leaks as well.
- Got the build system to accept CFLAGS, etc. within the main tree and the test tree.
- Since 0.91.8 according configure.in scripts have been cleaned up, improved (drop useless checks; added helpful ones) and they've been enriched by some additional comments. Earlier the XTHREADS test had been fixed.
- Ongoing work to use ANSI C89 as much as possible. Drop alternatives being used (e.g. bcopy() and friends)
- The Motif 2.x Xme() funcs should now all exist in stubs at least; some had already been "implemented" earlier.
- Makefiles tweaked so "make dist" produces a distribution that works.
- Added contributed code by Frank Mair for having bold columns in XbaeMatrix.
- Build support for a Motif 2.1 compatible tree. This will soon replace the 2.0 tree.
- Work in progres for creating XmPrint API. (2.1 functionality)
- Add lib/Dt directory for the CDE Desktop functionality.

## Release 0.91.8 (August 31, 2000 amai)

- Nothing to report yet.

## Release 0.91.6 (August 30, 2000 danny)

- Fixed a bunch of memory leaks.
- Bring the 2.0 version of LessTif in line with how Motif uses Xpm - that is: use the normal XPM API. This gets Xbae/examples/draw to compile in a 2.0 environment too.

## Release 0.91.4 (July 3, 2000 amai)

- Nothing to report yet.

## Release 0.91.3 (June 25, 2000 amai)

- XbaeMatrix - increaslingly more work on implementation of variable height rows.
- Xbae - try to give all non-static functions an Xbae prefix.
- Patches by Kazuyuki Funada <fun@shikoku.ne.jp> for TextField to get it to do decent i18n.

## Release 0.91.0 (May 14, 2000 rwscott)

- Nothing to report yet.

## Release 0.90.9 (May 11, 2000 amai)

- Add XbaeGetVersionTxt(), XbaeGetVersionNum() to get the version number from the (shared) library. Macros to get this at compile time are already in place.
- Change version numbers to include the UPDATE number as well. Now 4.8.0 becomes 40800 (M * 10000 + m * 100 + u).

## Release 0.90.7 (May 9, 2000 danny)

- Xbae configuration :
  - --enable-xbae-24bit (enable 24-bit code in XbaeMatrix)
  - --enable-xbae-row-heights (allow rows to have variable height in XbaeMatrix)
- Xbae API : add XbaeMatrixSetRowHeight(), XbaeMatrixGetRowHeight(), XbaeMatrixSetColumnWidth(), XbaeMatrixGetColumnWidth()

## Release 0.90.5 (May 2, 2000 rwscott)

- Nothing to report yet.

## Release 0.90.3 (May 2, 2000 rwscott)

- Major overhaul of the release process. Hopefully a little more consistent now.
- Xbae configuration :
  - --enable-xbae-24bit (enable 24-bit code in XbaeMatrix)
  - --enable-xbae-row-heights (allow rows to have variable height in XbaeMatrix)

## Release 0.90.1

- We had a major blow up in the configuration of this release

## Release 0.90.0

- XbaeMatrix : work in progress for making rows resizable. This is already in place for columns, it is one of the requirements for being able to handle different fonts. This may break binary compatibility with previous releases.
- Various XmText bugfixes.
- Add Xm/MenuT.h trait include file, required for Xmt 2.1.3.
- XbaeMatrix : two bugfixes related to use of global variables (auch).
- CascadeButtons : if we set the sub-menu on a menubar there is no need to refresh.
- All over : remove reference to timers we've nuked with XtRemoveTimeOut().
- XmList (XmEXTENDED_SELECT) - the selected_item_count was always coming back as 1
- ImageCache : add None symbolic name for transparency.
- XmTextFieldSetSelection - do not allow the start or end position to be greater than the current length.
- Make Labels handle bitmaps in the version 2 case only
- XmRowColumn : Give the focus to the root when we don't know were else to put it
- SelectionBox has a class method called list_callback. In our FileSB class initialization this field was missing. This was causing FileSB sub-classing problems.
- Do not activate an accelerator belonging to an un-managed widget. (DDD)
- Mnemonics were being installed and un-installed based on a different set of rules.
- Make label handle pixmaps with a depth of 1.
- Xbae : consistent use of ANSI C prototypes.
- Several bugfixes to RPM configuration file (lesstif.spec).
- Work in progress for making Xbae widgets threadsafe.
- XmListReplaceItemsPosUnselected doesn't replace last item due to the test being performed as if position were 0 based rather than 1 based.
- DragBS : don't tell bcopy to copy a negative length.
- Various fixes for compiler warnings.
- DragBS : _XmWriteDragBuffer also seems to have difficulties - it doesn't work if the 'size' is bigger than 1000, because someone had the bright idea of hardcoding 1000 in as the maximum possible size.
- Convert web pages to using JPEG instead of GIF.
- Add Builder Xcessory example files for Xbae widgets. With these you should be able to import the Xbae widgets onto the BX palette.
- Print a couple of warnings if someone calls Mrm thinking it might actually do something.
- Clean up website text consistency.
- Fix XmListYToPos().
- Get rid of <varargs.h>
- Our sample system.mwmrc wasn't correct.
- Manager.c : virtual key accelerator handler.
- lesstif.spec : make sure the include files for Xbae, Xlt make it in.
- lesstif.spec : split the "devel" RPM into two - the "devel" RPM keeps the development stuff (include files etc), the new "static" RPM contains the static libraries.

## Release 0.89.9

- Implement ScrollOneLineDown and ScrollOneLineUp. This is very usefull once you get one of those wheely type mouses.
- XmNmenuHistory now working for RadioBoxes.
- Patches to get mnemonics working in nedit.
- General code cleanup (getting rid of unused "global" symbols)
- XmListGetSelectedPosition fixes
- Lots of geometry fixes
- XmTextSetHighlight fixes
- XmList fixes
- Form widget significantly reworked (breaks binary compatibility)
- openDX translations now working
- Add Linas Vesptas's fixes to make XbaeMatrix cope well with cell widgets; these are widgets that stay inside one of the matrix's cells. GnuCash uses this extensively, Oleo will use it too.
- Add XbaeMatrixGetCellWidget() for API completeness.
- Patch by Jens Krinke for having multiple highlightings in XmText.
- Convert Xbae FAQ into HTML
- Xbae used to have #if CELL_WIDGET, they were now removed to make sure cell widget functionality is always compiled in.
- Updates to the lesstif.spec (file to create RPMs).
- Add BuilderXcessory configuration files that allow you to use the Xbae widgets in BX.
- Add XltCreateSciPlot(), this was a missing API, it was "needed" for the BX integration.

## Release 0.89.4

- NOTE: except for the version number this is the same as 0.89.1/0.89.2, which accidentially went out the door with two different version numbers.

## Release 0.89.2

- FileSB updates
- Several bug fixes which improve nedit operation (particularly the File->Open insensitivity problem).
- General code cleanup, and 64 bit improvements, eliminated most warnings on DU compile
- SelectionBox popdownCallback fixes
- XmListReplacePositions fix
- several fixes for openDX

## Release 0.89.1

## Release 0.89.0

- Add FontChooser widget to Xlt.
- Fix to XmText to make a second call to SetValues with the same pointer still work.
- Added a directory tree lib/Xbae which contains the Xbae widget set (XbaeMatrix, XbaeCaption, and XbaeInput).
- Made build system changes to build Xbae in the same way as Xlt.
- Add build system options to Xlt and/or Xbae can be compiled together with LessTif. Use the --enable-build-Xlt and --enable-build-Xbae options.
- Xbae contains both automake-based and Imake based build support; we're not sure how actively we'll support Imake though.
- RowColumn tear-off segfault fix.
- Fixed segfault with xmgrace.
- various fixes for openDX <lu> VaSimpleOption fix for Xquote
- fixes for mapCallback for DialogShells with BulletionBoard children
- Even though binary compatibility is not our true goal, Netscape-dynMotif (4.61) now runs out-of-the-box with lesstif!
- Initial attempts at making lesstif threadsafe (PushB, PushBG)
- mxftp should now work
- XmScrolledWindow/XmScrollBar geometry fixes
- Many compilation warnings silenced.

## Release 0.88.9

This is a quick summary of some of the more important things that have changed since the last release. For a more detailed view, see the ChangeLog file.

- Use libtool 1.3.3 which should get us more platform support. Check out the libtool information files for specifics.
- Configuration now more correctly handles libtool and whether to build and install shared and static libraries.
- Remove some files from the distribution. They belong in libtool or the auto-tools, we get them from there.
- doc/INSTALL.html changed to more accurately describe what to do when getting a CVS copy of LessTif. This really has to do with the removed files mentioned above.
- (2.0) Notebook widget layout significantly enhanced.
- Fixed small bug in i18n to get nedit to work. You need to compile nedit with -DUSE_XMIM though.
- Add #include <LTconfig.h> everywhere. Note that in the mwm/ directory this is handled in mwm.h .
- Upgrade our XPM (lib/Xm/LTXpm.c) to 3.4j, and change the prefix to _LtXpm instead of _XmXpm to indicate this is not a Motif thingy. Notebook uses this. (So did mwm already, and the image cache, and we register a resource converter - depending on build options.)
- Numerous tweaks to the visuals of labels/buttons, to bring them closer to the goal. This required some changes to the menu code. In some cases it has been made much simpler.
- Fixed the problem with nedit and accelerators. nedit installs and removes accelerators _alot_. The mask were were using to install and remove event handlers did not match, therefore the handler was not removed, but all the data the handler used was freed. Needless to say strange things happened after this.
- Lots of improvements for XmText.
- Many changes to ScrolledWindow and MainWindow to get them closer to the ultimate goal.
- Configuration verifies symbolic link presence with -r instead of non-portably testing with -L, -l, or -h.

## Release 0.88.1

- Build system changes. Should now be more error free, on wider variety of platforms. Linux version now produces libXm.so.1.0.2 instead of libXm.so.1.2 You may need to run "/sbin/ldconfig" as root after installing this version.
- This release introduces a major overhaul to the menu system. Keyboard traversal of menus works much better, and overall menu behavior is improved.
- Many more of the automated tests pass, implying that the geometry of more apps should be closer to OSF/Motif behavior.
- ToggleB[G] and CascadeB[G] cleanup by Jamie. (Well, *that* covers a lot of ground.
- Shadow.c: Added BC functions _XmDrawSquareButton and _XmDrawDiamondButton.
- ResConvert.c: Add ResConvert/define for XmONE_OF_MANY_ROUND and XmONE_OF_MANY_DIAMOND.
- Improve form layout handling: This is the new layout algorithm, brought about by my nagging suspicions, and the proof from form/test50. FormAllPaths used to calculate the size of the enclosing box of a clump of widgets. It didn't pay any attention to where on the form that box is placed. The new code pays attention. If a clump of widgets needs a height of 100 and is placed at 50, it now knows that a form height of 150 is needed. All the same tests pass, including the dreaded test13, but be on the lookout for something that used to work and doesn't now.
- Added hack to prevent nedit core dumps (see Manager.c 1.62 CVS log)
- Plugged memory leaks in List.c, Vendor.c, Protocols.c, XmStringCompare(), and significantly FileSB. LessTif apps should not "grow" in memory requirements nearly as much with this release.
- MainW geometry handling overhauled.
- Optimized Text a bit. Should be *much* faster now in adding text to large buffers in ScrolledText windows.
- And, as always, many other bugs fixed.

## Release 0.88.0

- Fixed layout of RowColumn for children with borderWidght !=0.
- FileSelectionSearch update.
- Fix for incorrect information in XmNchildren for menus with tear-off controls.
- Prevent a few segfaults in menu traversal.
- The build system overhaul should be working properly now. RPMs are still 1.2 only, but the tarball binary distribution should now have both 1.2 and 2.0 versions of the library.
- Prevent segfault in nedit 5.0.2.
- Tear-off-menu updates (and more to come...)
- ScrollBar fixes in ScrolledW/DrawingArea

## Release 0.87.9

### Major change to build structure. Now builds 1.2 and 2.0 versions by default.

- The 2.0 tree release breaks binary compatibility with all releases prior to 0.87.1 of the lesstif libraries because of a change to the NotebookP.h.
- Build system changes require the following tools and versions:
  - Autoconf version 2.13
  - ltmain.sh (GNU libtool) 1.2
  - automake (GNU automake) 1.4
- The build now creates (by default) both 1.2 and 2.0 compatible versions of the libraries. They are installed in $(prefix)/LessTif/Motif1.2 and $(prefix)/LessTif/Motif2.0 but the appropriate links are created in $(prefix)/lib and $(prefix)/include. Changing an installation that simulates 1.2 into one that acts like 2.0 is a matter of changing a couple of symbolic links.
- INSTALL no longer exists as a separate source in CVS, it is generated from doc/INSTALL.html by running lynx on it. Those who get a copy of LessTif from CVS will get a warning from automake saying that INSTALL is missing. This warning is harmless, the LessTif build process will generate the INSTALL file if it finds lynx.
- The doc/INSTALL.html is updated to reflect the new build options.

### Other code changes

- Fixed nasty bulletin board placement bug.
- Fixed bugs in Scrollbar: now allows 0x0 widget in realize
- List scrollbar names changed to VertScrollbar and HorScrollBar
- Improvements to scrolling in Text Widgets,
- Text cut-n-paste improvements.
- Form layout improvements.
- Menu fixes, including improved traversal code.
- 64-bit compatibility fixes
- Lots of fixes for grok.
- And much more!

## Release 0.87.1

- This version will probably break binary compatibility with 0.87.0, although I don't see anything specific at the moment. Don't count on binary compatibility, though.
- This version introduces a significant overhaul of lesstif's internal geometry handling thanks mainly to the hard work of Jamie Gritton and Rick Scott in the general area of visual appearance (geometry, layout, and color handling). These won't be detailed here (cvs log if you're interested). Overall, though, we're getting much closer to exact compliance with Motif's geometry handling. Among the many other changes are:
  Reorganization of drawing functions, step 1:
  There are no more _Xm*_1_2_ or Xme*_2_0_ functions.
  What used to be in ShadowI.c as _Xm*_1_2_ are now in Shadow.c as _Xm*.
  What used to be Xme*_2_0_ in DrawI.c is now Xme*.
  The Xme* that used to call _Xm*_1_2_ from Draw.c now call _Xm*.
  The _Xm* that used to call Xme* from Obso1_2.c are replaced by Shadow.c.
  Some cleanup of formatting and argument names in DrawP.h (both) and Draw.c.
- TextF got some updates, and should work better now
- Fixed "nervousness" in DrawnB's; better labelString handling in DrawnB's
- reset TopPosition in XmListDeleteAllItems
- NULL protection in List.c
- Better handling of cascade (and other) menus; should work better with xmgrace
- Added XmSHADOW_ETCHED_IN_DASH and _OUT_DASH from (1.2.5) to Separator.c
- Internals of Scrollbar changed significantly, should work better now (including processingDirection )
- indicatorOn converter patch
- implented NEXT_KEY in Protocols.c (huh?)
- Arrows from 1.2 and 2.0 now share more code
- FileSB now copies FS_DirMask if it changes in set_values
- changes in Form handling to work better with Ted (a text editor)
- Added Rob McMullen's SciPlot widget to libXlt.
- Added Rob McMullen's ListTree widget to libXlt.
- Add configure.in stuff for conditionally building XDND support.
- Configuration changed so EditRes is no longer triggered by whether or not you ask a production build. From now on, you ask EditRes support by --with-editres if you are performing a production build. A non-production build defaults to supporting EditRes.

## Release 0.87.0

- Geometry fixes for FileSB, Frame, Form, ScrollBar and others
- Labels no longer croak when given a None pixmap
- MenuShell: Call popup/popdown callbacks.
- RowColumns no longer croak when all their children are unmanaged
- MenuShells created by applications instead of the library now have the correct grabs and hooks installed
- Implemented XmTextRemove, changed XmTextCut and XmTextSetString

## Release 0.86.9

- Overall, we're relying more on our test suite now to tell us about problems, and we're beginning to take steps towards automating running the tests.
- Various B/W and resolution independence fixes from Jamie Gritton.
- Fixed unreleased mouse grab in menushellpopdown routines
- Absolute tons of geometry fixes from Rick Scott
- Broke test programs out of main tree
- Fixed a double callback in bulletinboards
- Fixed Drag 'n Drop so that you could turn it off with resources
- Fixed quite a few memory leaks
- Added a couple of convenience functions such as _XmObjectLock(w) and _XmObjectUnlock(w) which you can use to lock the application context of that widget in a multi-threaded environment. These functions are defined such that they can safely be used even when compiling against X11r5. According to a reply to my query on comp.windows.x (by David Lewis), essentially all convenience functions should be protected by these. General explanation (very little though) is in the Xt documentation, secion 7.12. Can anyone clarify ?
- Toggle Button (widget and gadget) now have a third state, XmINDETERMINATE, in a 2.0 compliant LessTif.
- The 2.0 tree release breaks binary compatibility with all releases prior to 0.86.5 of the lesstif libraries because of a change to the VendorSEP.h. All programs which use dynamically linked M*tif 2.0 compatible lesstif libraries will have to be re-compiled to use the new libraries. If you don't wish to do this, see the --enable-back-compat option of configure.
- Cloned ArrowBP.h, ArrowBGP.h, ToggleBGP.h, DrawingAP.h, ManagerP.h and PrimitiveP.h for the 2.0 tree and added new 2.0 resources. This also breaks binary compatibility for the 2.0 tree.
- Added new file Direction.c to the 2.0 tree. This contains stubs for the XmDirection family of routines.
- Add a couple of files and links, and perform some cleanup so Lessdox doesn't contain so many broken HTML links. Note that this adds documentation to LessTif about a number of Xt functions and widgets. The documentation only refers to the Xt docs though.
- Build system changes require the following tools and versions:
  - Autoconf version 2.12
  - ltmain.sh (GNU libtool) 1.2
  - automake (GNU automake) 1.3
- Fixed values of enum in CutPaste.h. This breaks binary compatibility for both 1.2 and 2.0.

## Release 0.86.5

- Button ArmAndActivate action re-work.
- BulletinBoard default button processing.
- Initial BulletinBoard geometry.
- DialogShell children positioning.
- MenuBar sizing in MainWindow's, they now wrap to multiple rows if they are resized too narrow.
- Numerous improvements to Text and TextField.
- Improved color handling.
- Plugged numerous memory leaks, especially in XmStrings and labels.

## Release 0.86

- Implemented XmStringCompare w/o calling XmStringByteCompare, since that wasn't sufficient.
- Mozilla now has sorted directory and file lists!
- Implemented undocumented feature xmUseVersion.
- Inserted patch by Gary Aviv to implement XmPanedWindow better.
- An autoconf macro, AC_FIND_MOTIF, was added to the distribution, in scripts/autoconf/. This macro is based on a similar one by Andreas Zeller (ICE_FIND_MOTIF), but it presents other variables with which to build your Makefiles.
- Some small changes for 2.0 builds
- Traversal fix for ScrolledW. This from Karsten Jenson.
- Some geometry tweaks for BulletinBoard
- XmTextField.c:XmTextFieldInsert() - We were not setting the CursorPos before the insert so the text was not getting to the correct pos. This was showing in ml's save file dialog. It's been this way for a long time, I just got tired of it.
- Various patches from Stephen Gallimore on XmStrings, double line separators, internal widget names in FileSB, _XmGetColors and _XmAccessColorData.
- Now use integer math for Lists in list.c

## Release 0.85.3

NOTE: This release breaks binary compatibility with all releases prior to 0.85.3 of the lesstif libraries because of a change to the indicatorType resource of ToggleButtons. All programs which use dynamically linked lesstif libraries will have to be re-compiled to use the new libraries. If you don't wish to do this, see the --enable-back-compat option of configure.

- Extensive changes to FileSB. Focus handling is now in line with the Motif spec
- Handles cascade buttons w/o children correctly
- Removed several spurious shadows and geometry problems
- Changed menu wrapping code in RowColumn again (does this work right now?)
- FileSB and Selection Box dialogs in general now have correct behavior of their buttons.
- and more!

## Release 0.85.3

NOTE: This release breaks binary compatibility with all releases prior to 0.85.3 of the lesstif libraries because of a change to the indicatorType resource of ToggleButtons. All programs which use dynamically linked lesstif libraries will have to be re-compiled to use the new libraries. If you don't wish to do this, see the --enable-back-compat option of configure. Another Note: Some of the items in this list may in fact regard changes after 0.85.3 because of a breakdown in the release script process. I hope those problems have been fixed and we're back on track now. In any case, this list is meant to be informative rather than normative. The detailed information is available from the cvs logs anyway.

- Add the flag --enable-back-compat to provide other project maintainers with a way to build to the original Lesstif ABI.
- Scrollbar patches to make Mozilla happier
- preliminary Drag & Drop support
- Cascade button now works properly with no submenu
- Fixes to form for some obscure cases
- Cleaned up list geometry
- Extensive changes to FileSB based on test results
- New release number format
- Small fix to MessageBox
- Preliminary Drag and Drop support from Waider
- Scrolled Window patches from Karsten Jenson
- Geometry fixes to the List Widget.
- Add check for <ctype.h> in configure.in to be able to safely include it in lib/Xm/misc.c. Requested by Alexander Mai, probably for OS/2.
- Add XmONE_OF_MANY_ROUND which is required in Motif 2.0. wxftp doesn't compile without it. This does not break --enable-back-compat.
- (OSF/Motif 2.0 compatibility) Frame.c : add support for XmNframeChildType which does the same thing as the obsolete XmNchildType. This requires a bit of hacking.

## Release 0.85.1

- configure.in : use newer libtool 1.2 way of specifying default (i.e. don't generate static library)
- configure.in : changed the values for detecting man2html from 0,1 to no,yes. This may break your build if you've kept a config.cache from a previous release. Either remove config.cache, or change the value that reflects presence of man2html from 0 to no (or from 1 to yes).
- Reorganized the drawing functions in Xm/Shadow.c and Xm-2.0/Draw.c so changes to the 1.2 drawing functions will make it into the 2.0 branch.
- Added function ComputeArrowSize to Xm-2.0/ComboBox.c. This routine should now calculate the arrow size properly.

## Release 0.85

- TextField clipboard ops now programmed with XmClipboard API. This was half done in 0.84 (and disabled through #ifdef), now it's enabled.
- Copied the experience and also used the XmClipboard API in XmText.

## Release 0.84

- Several fixes for Mozilla, which now works rather well with LessTif.
- Significant changes to the way XmFileSelectionBox treated its filesystem access functions. Getting it to work with Mozilla proved to be a good way of figuring out how they're supposed to work.
- Merged Traits stuff from lib/Xm-2.0/Text.c and TextF.c back into lib/Xm/Text.c and TextF.c . Keeping two versions in sync where the only difference between them are a couple of traits definitions (~ 2% of the source) is silly.
- There are a couple of man pages being installed, both as "man" source and as HTML. The man to HTML conversion happens with a slightly modified version of Debian's man2html. The slight modification is just so I can tell it to filter (as in a traditional Unix filter), not just to serve underneath a web server.
- Upgraded to libtool-1.2. This only involves two files: ltconfig and ltmain.sh .
- Put one documentation file per widget in doc/lessdox/widgets as a start for replacing the long defunct Lessdox. The conversion from man to HTML (as indicated above) is built into the nightly script, and a copy is made to the web pages, so the HTML for the manual pages is online on the Internet at http://www.lesstif.org/Lessdox/. The man to HTML stuff should also still be built into the release scripts so releases will contain this stuff as well.
- Finally found out why PageUp and PageDown wouldn't work as expected in nedit. Turns out to have to do with the Virtual Keys and a cache in Xt. (I think.) If anybody knows of a better way to solve this, please tell us.
- Several fixes to XmText.
- Small fix so popup menus stay visible when clicking MB3 (usually) instead of just holding the button down.
- Implemented clipboard operations for XmTextField. Cleanup of the code, to use XmClipboard* API, is in progress.

## Release 0.83

- New configuration based on automake, autoconf, libtool. All of these are GNU tools available from the usual sites, such as ftp://prep.ai.mit.edu/pub/gnu" but you don't need to have any of these for using or building LessTif unless you want to alter LessTif itself (adding directories, files to treat by configure, ...).
- The new configuration won't change anything for you; if you want to build LessTif you still only need to run

      	configure add your options here
      	make

- If however you change anything to a makefile.am, or to configure.in, or if you're running Cygwin32 or OS/2 (once these things get ported) you'll have to run the following sequence :

      	autoheader	creates include/LTconfig.h.in
      	automake -i	converts Makefile.am into Makefile.in
      	autoconf	converts Makefile.in into Makefile
      	configure	add your options here
      	make

- In the M*tif 2.0 compatibility area, a couple of things happened. The XmeDrawArrow routine was improved. It now acts as the M*tif 2.0 version of the function. All XmeDraw* routines have been moved from Xme.c to Draw.c. Removed the link Shadows.c and added a file Obso1_2.c for 1.2 routines deemed obsolete in 2.0. Added new tests for the XmeDrawArrow routine. Also, the size calculation routines of the XmComboBox widget were improved.
- The scripts/mmf will rebuild the Makefile in the directory in which your run the script. It's much faster than rebuilding all the Makefiles by running configure on the whole distribution. Be careful when using it after modifying configure.in though; you will end up with an inconsistent set of Makefiles.
- There is now a XmPanedWindowWidget in the 2.0 directory as well; it is nearly the same as the 1.2 version : the only difference is an additional resource (XmNorientation). SashAction (interactively moving the panes) isn't 100% foolproof yet. Xinvest uses this.
- Notebook (also in 2.0, see below) is beginning to do sensible things. It uses some of the traits in sensible ways, and can be used to display pages and page through them using both a SpinBox and tabs.
- For those of you who are using a binary distribution of LessTif: there are currently no 2.0 widgets in those; our binary distributions are 1.2 based for now. You can build a 2.0 version from source by running

      	configure --enable-build-20	more options
      	make

- Placement of the XmComboBox scrolled list is now correct. However, the initial size calculation of the scrolled list is incorrect. Added a new internal routine called XmeShellSmartPlacement (see file PopupUtil.c). This routine attempts to keep the shell completely visible before XmePopup* is called. Also, added two XmePopup* routines to wrap the XtPopup family of routines.
- More 2.0 stuff... Added header file DrawP.h to the include/Motif-2.0/Xm directory. Removed Xme* function declarations from DrawP.h in the include/Motif-1.2/Xm directory. These routines do not exist in the 1.2 tree and would result in unresolved symbol errors if used.
- You can build from other directories than LessTif's root directory. This is what I did on my system (from LessTif's root) :

      	mkdir DEBUG
      	cd DEBUG
      	../configure  --prefix=/usr/lesstif20g --enable-debug --enable-build-20 --enable-nonstandard-conversions
      	make
      	cd ..
      	mkdir PRODUCTION
      	cd PRODUCTION
      	../configure  --prefix=/usr/lesstif20 --disable-debug --enable-build-20 --enable-nonstandard-conversions --enable-production
      	make

- Added a couple of Makefiles to also install doc/www.lesstif.org when doing a "make install". Consequence is that binary distributions will also contain the information from the web site. (At least a snapshot of it taken at release time.)
- Added a couple of manual pages donated by Ray Dassen and put them in doc/lessdox/clients.
- Added Makefiles so the manpages above are installed in PREFIX/LessTif/doc/man and PREFIX/LessTif/doc/html .

## Release 0.82

- Build support for the Cygnus Win32 environment. May not be complete yet.
- Finally implemented a default functions for TopShadowPixmap and HighlightPixmap in Primitive and Manager.
- 2.0 compatible widgets : GrabShell (internal widget), SpinBox should work reasonably.
- 2.0 : Traits also implemented (which is not a big deal), but no work has been done on adding traits to widgets, except where needed for SpinBox.
- Peter Pilgrim gave us the basics for XmPartOffsets. Thanks, Peter.
- Build : add run-time library path options (-R on Solaris, NetBSD; -Wl,-rpath on OSF/1).
- Added the web pages for the LessTif site to CVS. Now you can see in lesstif-*/doc/www.lesstif.org what you normally get from http://www.lesstif.org
- Add string to widget converter. Apparently Motif 1.2 has this but previous versions didn't.
- Various fixes to XmText; one of which was the I-beam cursor overwriting initially displayed text.
- Build support for SlackWare and RedHat.
- Work on popup menus has led to a revamping of the menu system in general. Popup menus should show better behavior now, although keyboard focus isn't 100% yet. Grabbing in general should be handled a little better now (I'm interested if people get messages about "XtWarning: Asked to remove widget not on the grab list"). Mnemonics and accelerators should behave better. Option menus should also behave better, in general.

## Release 0.81

- Added stuff-to-string converters to the Editres functions built into LessTif. Also fixed the bug that prevented it from passing getting values. You'll also need a small patch on your editres to use this. (See below.) After that, you'll be able to query widget values with editres.

      *** programs/editres/handler.c.r6     Sun Apr 17 20:38:56 1994
      --- programs/editres/handler.c  Tue Feb 07 14:36:12 1995
      ***************
      *** 813,820 ****
            /*CreateGetValuesCommand(node, (XtPointer)&info);  Inserts widget */

            /* Insert widget */
      !     _XEditResPut16(stream, 1);
      !     _XEditResPut32(stream, node->id);

            SetCommand(node->tree_info->tree_widget, LocalGetValues, NULL);
        }
      --- 814,820 ----
            /*CreateGetValuesCommand(node, (XtPointer)&info);  Inserts widget */

            /* Insert widget */
      !     InsertWidgetFromNode(stream, node);

            SetCommand(node->tree_info->tree_widget, LocalGetValues, NULL);
        }

  All of this code was donated by Peter Derr <pderr@zk3.dec.com>.
- Many more geometry fixes.
- The code has been struck by the mad indenter. Most core library code will now have a consistent look.
- Various fixes for xmcd - see KNOWN_BUGS.
- In the Motif 2.0 compatibility area, a couple of things happened. Traits were implemented, a XmSpinBox widget has an initial implementation, and a couple of widgets (XmTextField, VendorShell) were copied from the 1.2 directory to cooperate better with XmSpinBox. (Read: they support traits).
- Build fixes for a 2.0 compatible library.

## Release 0.80 alpha

- Work on selecting text, copy/paste, ... in XmText has begun. It's somewhat functional : primary selections seem to work, not all key combinations for the keyboard traversal business may be supported yet though. (Please send E-mail to lesstif@hungry.com if anything's missing.) Nothing has been done for secondary selections yet.
- Support for SetValues and GetValues on resources in the input and output objects of XmText is implemented now. Not all resources are treated yet though (especially SetValues), but at least changing the fontList seems to work. Mxgdb demonstrates that GetValues also works.
- Lots and lots of work on geometry.
- Added a Makefile target "install-list" everywhere, which prints a list of files that the "install" target will install.
- Based on this, created stuff in scripts/FreeBSD to create a binary package that can be installed with pkg_add(8) easily. Waiting for someone to do similar stuff for Linux.
- Drag and Drop is "primitive", at best. Do not be surprised if Btn2Click on labels and subclasses cause you problems.

## Release 0.79

- Fix build problems in 0.78, new Form code.

## Release 0.78

- New directory structure to allow for CDE and 2.0 widgets.
- For testing purposes, the Interleaf ComboBox widget is added to the Xm-CDE directory. If someone cares to replace or enhance it, please do so. I'm no legal expert, but enforcing LGPL license on LessTif if part of it is covered by the license Interleaf has put in, might be contradictory. (Note that the Interleaf license is more liberal than LGPL.)
- A version of ComboBox with "dt" changed into "xm" is also put into the Xm-2.0 directory for testing purposes. Similar comments apply : we may want to replace this sucker.
- New version of configure.cmd (for OS/2) from Michael Holzapfel.
- Layout details (remember the "Pixel Police" ?) are finally understood and are getting into place in ScrolledWindow.
- Drag and Drop is somewhat working at this point. We don't do PREREGISTER (because nobody has documented it), so it gets emulated by the DYNAMIC protocol. Cross application dragging doesn't work yet.
- Improvements to the menu system. Option menus look a bit better, popup menus have improved and grab balancing is close to being OK.

## Release 0.78

- Started rework on XmMainWindow following similar work on XmScrolledWindow. Compile with -DNEW_MAINW to enable.
- Added stuff that'll allow applications to be compiled using imake. LessTif itself continues to be configured using a "configure" script generated with GNU Autoconf.
- Added DEBUG_FILE variable to DebugUtil.c so you can direct debug output to a file easily. It's faster than scrolling in an xterm window. Also apps like ML hang when you send stuff to stderr because they catch stderr and throw whatever they find in a Motif (err LessTif) XmText widget. Chicken and egg problem. Try using it with setenv DEBUG_FILE /tmp/lesstif.%p
- Improvements to the menuing system.
- DragDrop has been started. Drag cursors are about the only thing that work, though.
- Major changes to the source tree layout are upcoming in the next release.

## Release 0.76

- The clipboard has mostly been implemented, but it does still have a few problems.
- The implementation of XmScrolledWindow has been completely reworked. Results should be visible in plan and xdiff.
- There is a new #define, NONSTANDARD_EXTENSIONS. This is not enabled by default. If enabled, it will allow lesstif to transparently convert a string to a pixmap for resource converters (which many people feel Motif should have done a long time ago). Thanks to Peter Williams for this patch.

## Release 0.75

- Public release.

## Release 0.71

- XmRegion code is getting there. -- Chris
- New List widget. Thanks Blake and Jon!
- The clients/uil directory is being reworked completely. You'll notice that all the C++ stuff is gone. Thanks Geoff.
- Configure was extended so you can choose not to compile the testXm and/or testMrm directory trees. Use configure -help to find out more. Configure also recovers if testXm or testMrm are not there. -- Danny
- Default for the new options --with-testXm and --with-testMrm changed to *No* meaning tests only get compiled if you want them to. -- Danny
- Traversal/Focus/Navigation has been completely reworked; They should function much better these days. This change was fairly massive, so some things are surely broken. Feedback requested. -- Mitch
- XmFontList and XmString have new implementations; they should be more faithful to their Motif equivalents.
- LessTif should also work on OS/2 now. Thanks Michael Holzapfel and Christoph Jaeschke.
- Rewrite of mwm. It's much better behaved now, with most appearance resources and a good bit of the behavior resources supported. Transients, when they go away, now give the focus back to their parents (which might help with the locking focus problem sometimes seen in fvwm). SYSTEM_MODAL dialog support is more or less in, but cascading system modals will not be well behaved. The parser is much more friendly, and shouldn't have any problems with multiple menus. Multiscreen support is in (although you can't specify resources for each screen, but global resources work fine). Most of the Motif oddities with window properties are supported, including run-time update of the properties, application defined window menus, f.send_msg, etc. Dialogs for quitting, restarting, and toggling custom behavior are in (with some drawing problems, but they do work). As always, feedback on what works and what doesn't is desired. See the files clients/mwm/README and clients/mwm/Mwm for details. -- Mitch
- Pulldown menus work a bit better. -- Peter
- Many geometry management fixes (esp. in RowColumn). -- Danny
- The debugSources resource was removed; only the environment variable is left in the code.

      setenv DEBUGSOURCES Command.c:SelectionBox.c

  should do the trick.
- Dialog modality is partially implemented. Thanks Harald.

## Release 0.50

- Option menus are now in (somewhat). -- Chris
- Menu Gadget support is almost up to the level of Widgets. Use it with caution, as it may lock your server. Mosaic 2.7b2 menu items are selectable now. -- Chris
- Debugging info from LessTif can be enabled by setting environment variable DEBUGSOURCES or the equivalent resource to a list of the source files that you want to see info from. test2 -xrm "*debugSources: Command.c:SelectionBox.c" -- Danny
- Quick and Dirty implementation of internationalisation (i18n) for TextField. Works on XFree86 3.1.2 on FreeBSD, and on HPUX with X11R5. -- Danny
- First cut at FastSubclassing. Starting rework of GadgetCache objects to be more in line with Motif. SyntheticResources and Resolution Independence are in, but a bit shaky (maybe). Many more import/export procs need to be written. Both Chris and I are working on the BaseClass stuff -- quite a lot to do there. More mwm improvements (should be more stable on more platforms now). Need to work on "shields up" for modality and multiscreen support for it. If you experience core dumps with mwm, check and see if you compiled the library -- on some platforms, modifying the library a running executable uses can cause this (Solaris, Linux), as they think it's pure code, and don't swap it. The alternative is to link mwm statically. Oh, and I got rid of those pesky warnings in LTEditres.c. -- Mitch
- GeoUtils have (somewhat) been implemented. They still need work, though. -- Mitch
- Pulldown menu grabbing is in the works. It kinda works for Cascade button WIDGETS, not at all for gadgets yet. In the gadget case, it's #ifdef-fed out. In the widget case it is not. If your menus appear to freeze, pressing Escape usually helps. If it does not, please send me detailed info. -- Danny (u27113@kb.be)

## Release 0.36

- Initial version of Mwm is in. It's a bit rough, so don't expect to much.
- Menu dragging is sort of working better. This only applies for widget, so menus that use gadgets (such as those in Mosaic) will not work. This will change quickly, so be patient.
- Initial TearOffButton stuff
- Fixed bug in configure.in for NetBSD/FreeBSD using GNU make
- Added support for linux-aout shared libaries. Thanks JanJaap!
- New Gadget Cache and ExtObj stuff.
- Better (more in line) geometry management in the RowColumn widget, the PanedWindow, and the Frame.
- Lots o changes in Form, MessageBox, BulletinBoard.
- Rob McMullen's TextField widget has been folded into lesstif. Thanks Rob!
- RepTypes are actually working now. How come nobody told me :)?
- Drag and Drop is beginning to take shape.

## Release 0.33

- Harald Albrecht has contributed implementations of the VirtKeys stuff, XmDisplay widget, and the first "official" Lesstif client - `xmbind`
- The configuration management stuff should be working much better and more portably across all the supported architectures. For those of you with Free/Net BSD, you can now use BSD make to build lesstif for your machine. Check out the `INSTALL` file for more information on configuration.
- Gadgets and Manager widgets now communicate in a much more Motif-like fashion (with the _XmDispatchGadgetInput function). Gadgets specify an event mask to tell their parent what events they're interested in. Also, more gadget events are handled, like the enter/leave events.
- The beginning of the default button handling in dialogs is in -- in the `ParentProcess` stuff.
- The list widget should be a little less problematic now.
- Included John Richardson's patch for XmLabelWidget/Gadget. Now label behavior is much better.
- _XmDrawArrow (Mitch's baby :) is behaving itself better lately.
- We're starting to go after some of the more underlying things, like the GeoUtils and Traversal stuff. Don't expect miracles though.
- Fixed some problems with the Fontlist stuff returning NULL.
- Lot's more stuff that I've forgotten. If I missed something you sent in, please resend it (after seeing if it wasn't fixed another way :)

## Release 0.3

- The list widget is currently undergoing a reworking. Please don't expect much, but I'm working on it.
- ScrolledWindows are working better. Thanks Mitch.
- Applied countless million patches :) Some didn't make it in. I'll try to get to those soon.
- `memcpy` and `memmove` are not used anymore. We now include `Xfuncs.h` and use `bcopy`. If your system has a better way of doing it, it's probably set in there.
- Configuration system should be working better.
- `makedepend` is now used for generating dependencies. If you don't have it, comment out the lines in libXm and libMrm that use it. Lesstif will eventually be packaged with makedepend so that it'll build it if it can't find yours.
- Scales and Scrollbars are basically done (we think) barring minor cosmetic changes. Thanks Mitch and Peter.
- Default buttons are now drawn differently in bulletin boards (and subclasses). They're not correct, but they're drawn differently.
- Code for handling unspecified width/heights has been changed to check the request widget's width and height, and now it checks for 0, instead of XmUNSPECIFIED.

## Release 0.2

- Updates for MessageBox/BulletinBoard
- Fixed primitive widgets unhighlighting themselves.
- Better scale/scrollbar widgets -- patches from Mitch.
- Added _XmClearBorders. This function should be used to erase shadows and highlights. Primitives now call it to erase their highlights when their parent is not a manager.
- Added default button shadows to PushButtonWidgets
- Added shared library support for HPUX 9, IRIX, Linux (ELF only), FreeBSD, NetBSD, DEC OSF/1, SunOS 4, Solaris 2, AIX3, DG/UX 5. I want your input on the current scheme. Does everybody like it? Thanks to Xiaokun Zhu for his help.
- Fixed problems with missing \n\'s in Transltns.c
- Fixed x_includes and x_libraries not being set on IRIX after configuration
- Moved to include'ing a template makefile for the tests. Made their Makefiles much smaller.

## Release 0.1

- Changed lesstif to use autoconf instead of imake This will hopefully make it easier to configure stuff for different platforms so that the globbing stuff works correctly. Along with this change, however, is the new job of getting shared libraries built for each platform. If you have an idea on how we should go about doing this, please let me (toshok@hungry.com) know.
- The glob stuff has changed to be in the same directory as the other libXm stuff, and the function names have changed to _Lesstif_glob, etc. The filenames have also changed, to LTglob{.c,.h} and LTfnmatch{.c,.h}
- From this release on, libXmu need not be linked in with lesstif. This is because we now include the _XEditresCheckMessages function, calling it _LesstifEditresCheckMessages. The relevant file is LTEditresCom.c.
- This release contains lots of fixes to the form widget from Danny et al., and a new AtomManager from Harald Albrecht, which is doubtlessly more efficient than the previous incarnation. Excellent work Harald!
- Vendor shell now responsed to the XmNmwmDecorations and XmNmwmFunctions resources. If you have mwm running, you can now specify programmatically the decorations and functions that toplevel shells have. Neato.
- From this release on, I'm now going to start using numeric release numbers, (0.1, 0.2, etc.) so that when shared libraries start working, we can have a direct correspondence between the distribution and the shared libraries.
- The Label widget's insensitive GC is now properly created.
- CascadeButtonGadgets now draw themselves in the proper color, and are properly highlighted by XmCascadeButtonHighlight.
- The menu system doesn't grab you server anymore, so you can run programs that have menus without fear of locking you server. Xt grabs are used, however, which is the way things should work (in part. Server grabs are necessary, but I'll get to that once the toolkit grabs are functioning properly.)
- Most of the correct Motif translations have been integrated into lesstif. You'll probably see lots of warning messages about lesstif not being able to find an action. These will go away soon.
- I hear we're going to be written up again in next month's Linux Journal. Great work guys!

## Release Sep12-1524

- Most widgets now have their correct motif translations. Not all the specified actions are present, but those will come along.
- Pixmap top and bottom shadows are supported now, both for manager and primitive widgets.
- The primitive widget in general is almost complete. One gaping lack of functionality is the resolution independence offered by synthetic resources.
- Better `set_values` methods for some widgets. They now don't do silly things, like checking the request against new...
- More complete interaction between mwm and XmVendorShell, including client decorations and functions (see the testXm/vendor testcases)
- Better `XmTranslateKey` (actually, it's still rather broken..)
- Buttons now draw themselves better in menus (i.e., no highlight rectangles) -- I think...
- Blinking cursors for XmTextField (yay!)
- Updates and fixes to many, many things...
- I'm holding off on putting in the autoconf stuff until I get it functioning properly, or at least better...

## Release Sep01-1407

- PushButton now correctly catches the ButtonUp event when the pointer is moved out and back into the widget, as do the other button widgets, withough the in_window field. Gadgets also handle this correctly now, through their parent's manager translations.
- PushButtons now fill in their interior when fillOnArm is set to true.
- ArrowButton gadgets now draw themselves correctly, not at (0,0).
- Many more fixes to widget code to use the #define'd access macros.
- Pixmaps are drawn more correctly in label subclasses -- i.e., they're centered properly (well, one or two pixels off, but who's counting) when the widget is smaller than the pixmap.
- Form and MessageBox updates from Danny
- Scale updates from Mitch
- Fixed NASTY bug with some default procedures. The offending functions used XtDisplay() instead of XtDisplayOfObject() -- they're supposed to work with both widgets and gadgets -- and these would cause SIGSEGV's on my box, except they would happen in between the call to `class_part_initialize` and `initialize`. Ugh.. Actually, I've fixed various places where XtDisplay() is used for gadgets, like in the SeparatorGadget and ToggleButtonGadget expose routines...
- We're now using the translations supplied in the mot.trans file (testXm/misc/mot.trans), generated by Mitch Miers, for most widgets. I'll add the rest for the next release. Please nobody send me them as a patch, I'll enter them myself.
- Fixed bug in SeparatorG that was using the XmUNSPECIFIED for the direction that its oriented in (e.g., width = XmUNSPECIFIED when orientation = XmHORIZONTAL).
- Gadget seem to be working with MessageBoxes now... Dialogs! Yay!
- The menu system is in need of some overhaul and much pencil and paper work. The next release may not affect too much more than that (well, I won't be working on much more than the menu system and traversal)
- I have not yet had a chance to try out lesstif on DEC's public alpha machine. There were some problems with out of scope function prototypes causing memory alignment problems. These are not fixed (to my knowledge) in this release. I'll look into it for the next release.
- I've cooked together a `configure` scheme for lesstif, which I'll be patching into the source tree something this next week. It will handle most of the system dependent things much better than the imake system we're using now.
- Wow... A lot has changed :)

## Release Aug23-2257

- Converted the primitive widgets to use the "correct" preprocessor symbols (e.g., Prim_ShadowThickness(w), XtWidth(w), etc.) Actually, I got most of the way through this... Too much work for one night. I'll finish up the rest for the next release.
- Pervasive change from using `strdup`() to `XtNewString`(), and `Xt`{`Malloc,Calloc,Free,Realloc`}, instead of their C library counterparts.
- Re-engineered the event handling of the PushButton widget. This removed the funky and unnecessary "in_window" instance variable. The only problem appears when the select button is pressed inside the pushbutton, and then the pointer is moved outside the window and then back in -- the ButtonRelease event is not passed to the widget. Moving the pointer outside the window and releasing, as well as clicking inside the window work, though. This should be an easy, boneheaded fix, somewhere in the Arm action (I think).
- Preliminary ImageCache and Pixmap cache, which (as far as I can tell) works like Motif's. The label pixmap code now uses XCopyArea again, so you can get into problems with pixmaps of different depths than the widget's window. This behavior exists in Motif as well, so it's not a Lesstif bug.
- Atom Manager now does client side caching of atoms.
- New testcases for Xmos (contributed by Mitch Miers) and for the ImageCache routines. Hey, on my Indy, testXm/imagecache/test1 looks exactly the same under Motif and lesstif. There still some problems with traversal (like, it isn't there) and redrawing on expose events, but initially it looks identical :)
- A new resource converter for XmFontList's is in, so you can specify fontlists in resource files. Note: I've only tried this for single entry fontlists, without tags. More testing is necessary here..

## Release Aug14-1709

- Sheesh. I was in a hurry this morning to get the new release out and got bit by RCS again. I've modified my distribution script so that it now checks everything in before tarring it up.
- Also, I've included the latest Shadow.c patch from Jeremy Allison. Thanks Jeremy!

## Release Aug14-1051

- First off, I've moved back to school for the semester -- starts in two weeks. Much of the work I did this summer on a linux box, displaying to an HP X terminal doesn't work now -- going from an HP735 to an Indy :( It seems to be focused mainly in the RowColumn widget. I'll fix this for the next release, but for now, it seems to be pretty broken.
- Included all the patches (I hope) sent to me since the last release, including those from the Pixel Police (tm) :)
- TextFields and Text widgets should be working better thanks to Danny, Mitch, myself and others. For one thing, nasty unterminated strings should not be present anymore. Also, the handling of the initial size of text fields has been fixed.
- The "input" resource on VendorShells is fixed so that LessTif programs will by default accept the keyboard focus. Now you can actually type :)
- Traversal is beginning to work. For now, the behavior is limitted to that of EXCLUSIVE tab groups (meaning that the keys move you around in the order of child insertion, not by screen layout. This should be easy to add, but it'll be dependant on the manager widget type (I think). For an example, check out testXm/textf/test2.c. Run the program, hit the down arrow in the window, and hit return. This should activate the XmNactivateCallback for the pushbutton widget. -- (Actually, this seems to be another piece of code that broke with the move... Your mileage may vary.)
- ToggleButtons seem to be very nearly complete -- nice work guys!

## Release Aug07-1618

- This release is nothing more than the Aug07-1158 release with all the gadget header files included. I forgot to check them in to RCS, so they weren't included in the last distribution. -- Chris

## Release Aug07-1158

- Selection box, Message box, and File Selection Box updates from Danny Backx and Mitch Miers
- The rest of the gadgets are in, thanks to Mitch Miers.
- Event passing from XmManager to XmGadget is in now. The individual gadgets do not all take advantage of it, though. Take a look at the initialize() and input_dispatch methods of the pushbuttongadget for an example how it might work.
- Integrated the scrollbar fixes contributed by Peter van Helden.
- The virtual key bindings are working now. To get keyboard input for some window managers (like fvwm, mwm seems to be ok), just set the resource "*.input" to True. For example: 'test1 -xrm "*.input: True"' will work. There is an example .motifbind file in this distribution in "example.motifbind". Just move that to ~/.motifbind, and those bindings should work, given that you're not running mwm, or you haven't set the defaultVirtualBindings resource.
- The beginnings of keyboard traversal within manager widgets. Actually, the code properly calls XmProcessTraversal in most cases, but this function only prints out the argument at the moment.
- Beginnings of synthetic resources for resolution independence. Check out the syn_resources in Label.c for an example.
- The whole menu/cascadebutton scheme should be a little more bug-free now.
- New XmCreateSimple* routines contributed by Mitch Miers.
- The RowColumn layout for XmWORK_AREA (at least) is broken for the moment. I'll get to this next week.
- I've taken the liberty of once again reorganizing the test trees. Now, each directory has in it files named "test1", "test2", etc. When contributing test cases, which are desparately needed right now, focus on a particular feature of the widget, and write a concise test of that feature.
- Hopefully I haven't missed anything. Enjoy this new release -- The LessTif developers.

## Release Jul16-2340

- Many, many updates from Danny Backx (who seems to be the only one of us with much time this summer :)
- Made ArrowButton descendant of Primitive, instead of Label.
- Compilation should work now on SunOS 5.4 (no testing done though). I've built LessTif on a sparc 5 I've got access to at work, without a hitch.
- Scale widget is in (Finally). Actually, this should have been in for some time now, except I lost Paul's email that contained it. Thanks Paul.
- FYI - LessTif was featured in the August issue of Unix Review Guess some people actually like the idea of a free Motif (nah... can't be :)
- Administrativia - Releases will now be made weekly, either sometime Sunday night or early Monday morning (depending on how much is going on at the time.) I'll try to follow this religiously, but I may slip up every now and then (I'll have a really good excuse, though.)

## Release Jul09-2314

- Too much to really speak of... sorry for the delay in the release. I did not (and still don't) have reliable access to an X display for testing purposes. This will change in the following week, but testing for this release is extremely important. Please email all bug reports to toshok@cs.uidaho.edu. Thanks.

## Release May25-0249

- New `_XmOS` functions, and stubs for the internal `_XmString` functions, although there is no "internal" representation yet.
- Updated instance variables for primitive widgets
- Cleaned up the shadow drawing routines.
- Making better use of ActionProcs.
- Got Label Gadgets working finally -- others should move along soon.
- Fixed default procs so they work with gadgets as well as widgets.
- Menu stuff is working a little better now.. still no traversal, but the MegaButton widget now works :)
- Bernd Wiserner wins the award for most contributions in a single day. He contributed a new suite of Imakefiles, which allow shared libraries, as well as the XmUpdateDisplay function and
- Fixed incorrect default size for separators. Now menus look quite a bit better.
- Did a lot of work with the label. Now uses the TextRect correctly (I hope).
- Shouldn't see any more SIGSEGV's with pulldown menus.
- The scrollbar, my bad habit, is now drawing better, but is still broken.
- Fixed many problems.
- Not all the bug reports for the last ROTD have been fixed yet, but I'm working on it :)

## Release May10-0051

- Changed the test `Imakefile`s so that they don't build the Motif executables by default.
- Added Paul's shared library snippet to the Imakefiles
- Restructure directories. Hopefully, when the source starts getting really big, it'll be easier to find stuff this way.
- Label and RowColumn `query_qeometry` method is working better.
- Form widget is coming along (thanks Danny Backx!)
- New version of the List widget (Thanks Jim!)
- Basic `expose` method for TextFields. When I get time, I'll probably hack up Matt's Text Widget to make the TextField, unless he beats me to it :)

Release Apr25-0550 -----------------

- From Jim Hunt - List Widget draws correctly, methods 95% written, actions started
- Added most of the `XmColorProc` stuff.
- New `XmAll.h` header -- thanks Paul.
- New Text Widget, from Matt Crosby.
- Moved functions around, and added new files, more in keeping with the OSF's source layout (from information gleened from `Xm/XmP.h`)
- Public and Private Stubs for
  - The Pixmap stuff
  - Gadgets utilities
  - Traversal
  - `XmCreateVaSimple`* calls
- Big bug fix in `FontList.c` -- `XmFontListAppendEntry` thanks to all that reported it.
- Currently XmScrolledWindowWidgets are broken. They'll be fixed in the next ROTD (I hope :)
- Most widget subclasses and programs compile now. They are still in the hopelessly broken phase, but they compile :)

Release Apr23-1256 -----------------

- Multiline and multifont labels now work.
- Gadgets are there (well, they just `#include` the widget headers and `#define` some things).
- PhaserChess actually works now. I actually made some small changes to the PhaserChess source to get it to work, but I started with an unadulterated tree a few days ago, and it worked.
- ScrolledWindows work now -- at least with the scrolling policy set to `XmAPPLICATION_DEFINED` and the scroll bar placement set to `XmBOTTOM_RIGHT`.
- Harald Albrecht's ComboBox widget, which XWord makes use of, compiles now. It has problems running, since the list widget and text field widgets don't quite work yet, but this is a pretty big step, since it's a subclass of Motif widgets.
- XWord compiles now. Don't take this news as more than it really is. It doesn't even come close to running. But it will :)

Release Apr20-0325 -----------------

- C++ safe header files (`extern "C" { .. }`).
- Initial XmFormWidget work. Should work if you only use XmATTACH_FORM or XmATTACH_WIDGET. It uses an interative layout algorithm, so I assume it's much the same as OSF's (since I've seen errors about bailing out after 10000 iterations in some of my broken Motif code.)
- Labels are very nearly complete. Paul Hoad contributed pixmap support for them, and I've just completed (I hope) the `set_values` method. The actions need to be done, but that's about it.
- Jim Hunt contributed a new version of the List widget.
- VendorShells are actually working now, so the Virtual Binding and Traversal stuff can now move forward, and some of the default resource procedures can be written now.
- XmStrings (via `XmStringCreateLtoR` can now be used with multiple lines.
- Menu fixes -- they're working better, but still not quite right (i.e. no pointer or keyboard grabs or traversal).
- PhaserChess is actually playable now -- try it out.

Release Apr10-1917 -----------------

- MenuBars are very close to working. This includes the CascadeButton stuff, MenuShell stuff, and the RowColumn stuff.
- RowColumns in general work a lot better than before. They actually make use of the RepType facilities now, so you can specify packing resources (for example) in resource files.
- PhaserChess (another hungry product) compiles and links with LessTif now, but it still doesn't work properly yet -- there are problems in some of the `set_values` code and the Text widget isn't functioning properly yet.
- Mosaic 2.5b4 very nearly compiles -- problems with gadgets not being there yet.
- If you noticed from above, I've removed the line about not looking at the Motif headers. This is do to the fact that, while trying to get Mosaic and moxftp to compile, I discovered that some people make frequent use of private instance variables and undocumented Motif functions. I've therefore changed most of the widgets (managers mostly) to use the Motif 1.2 naming conventions. The primitives will come along eventually.