This file contains the known bugs in this version of lesstif.
Please do not send in a bug report on anything below -- we
already know about it :)

The two sections below break down defects according to whether
they affect any application or only specific ones.

--------------------------------------------------------------

OPEN DEFECTS:
-------------

General Defects
---------------

1) PanedWindow doesn't really work all that well.  The sash movement behavior
   is, umm, "off".

2) Drag and drop is very incomplete (but getting better).

3) Drag in option menus does not work, but if you single click on the button
   and then single click on the item it is usable.

4) verticalSpacing and horizontalSpacing in Form are not handled.

5) application modal dialogs do not seem to give up their modality after they
   are popped down (Mosaic, xephem,...)

6) Text is not real freindly for entering text (seems to display okay though)

Application Specific Defects
----------------------------

Xmaddressbook:

1) The pulldown menus are not drawn correctly. The shadow around the menu
is not sized correctly so that most of the menu blends into the background.

Mosaic 2.7b5:

The security and encryption status icons are under the globe (rws form layout)

Xmcd bugs:
Serious problems (that affects xmcd functionality):

1. Xmcd uses a XmScrolledList widget to display the CD tracks on
   its CDDB/Program window.  Under lesstif, this list only shows
   the very first item in the list and nothing else.

2. Xmcd uses the XmText widget in SINGLE_LINE_EDIT mode for all
   CDDB/Program single-line text entry fields (This is for historical
   reasons: some older Motif 1.1 implementations of the XmTextField
   widget was quite broken).  This doesn't work well under lesstif.
   The insertionPosition does not seem to reposition itself in response
   to a mouse button click (i.e., the I-beam cursor doesn't move).
   Using the arrow keys seem to work, but typing text does not cause
   any text to be inserted.

3. Xmcd uses the XmText widget in MULTI_LINE_EDIT mode for the CD
   database extended information windows, and while the I-beam cursor
   does respond to mouse button clicks and positions itself correctly,
   doing some real editing causes a bunch of "MOVE BACK" messages to
   be printed, and eventually caused a SIGSEGV crash.  If anyone wants
   a backtrace I can try and reproduce this.

Less-serious problems (Secondary importance or cosmetic):

1. There is something wrong with the XmForm implementation, causing the
   following message to be printed when xmcd starts up:

   Warning: XmForm optionsForm Layout algorithm bailing out after 200 iterations

   The xmcd main window still appears on the screen, but larger than
   what's specified in the app-defaults file as the XMcd*mainForm.width
   and XMcd*mainForm.height,

   Also, if I use the -geometry 360x135 option to force the size of
   the main window, I get the right size window, but the widgets do not
   resize to fit, so I get a clipped view of what's in it.

2. Accelerators don't work.  Xmcd uses accelerators on various
   main window widgets to implement hot keys but this does not work.

3. Selections (cut and paste) into text widgets don't work.

5. The I-beam cursor blinks in a READ_ONLY text widget.  In "real" M*tif
   it doesn't blink and has a greyed-out appearance.

6. Keyboard traversals do not work reliably.

Xephem bugs:

4. The string "Update" isn't centered and the bar in which it is embedded has
   a geometry too small compared with xephem running with libXm.so.1.2.4.

5. Keyboard accelerator hints ( File -> (Quit Ctrl D)) has a wrong geometry.

DDD bugs:

001. The debugger console  (the place where you can enter GDB
     commands) displays only one line.

     Category: behavior

     Cause: unknown

     Fix: in `ddd/Ddd.in', comment out the lines limiting the size of the
     `gdb_w' scrolled window:

     --- ddd-2.0.orig/ddd/Ddd.in  Wed Sep 25 15:27:33 1996
     +++ ddd-2.0/ddd/Ddd.in  Tue Dec 17 14:59:14 1996
     @@ -2477,8 +2477,8 @@
      Ddd*gdb_w.rows:                        10
      Ddd*gdb_w.columns:             88
      
     -Ddd*gdb_wSW.width:             660
     -Ddd*gdb_wSW.height:            124
     +! Ddd*gdb_wSW.width:           660
     +! Ddd*gdb_wSW.height:          124
      
      Ddd*gdb_w.editable:            true
      Ddd*gdb_w.allowResize:         true


002. The debugger console is not updated.

     Category: behavior

     Cause: The `XmTextReplace' and `XmTextInsert' functions are not
     implemented.

     Fix: in `libXm/text.c', provide a simple replacement for
     `XmTextReplace' and `XmTextInsert':

     --- lesstif-0.75a.orig/libXm/Text.c  Mon Dec 16 17:51:29 1996
     +++ lesstif-0.75a/libXm/Text.c    Tue Dec 17 14:58:03 1996
     @@ -1271,6 +1271,9 @@
      XmTextInsert(Widget w, XmTextPosition position, char *string)
      {
        CHECK_CLASS(w);
     +
     +  /* Quick hack */
     +  XmTextReplace(w, position, position, string);
      }
 
 
     @@ -1301,6 +1304,31 @@
      void
      XmTextReplace(Widget w, XmTextPosition from_pos, XmTextPosition to_pos, char *value)
      {
     +  int old_len, value_len;
     +  char *old_string;
     +  char *new_string;
     +  CHECK_CLASS(w);
     +
     +  /* Quick hack */
     +  value_len  = strlen(value);
     +  old_string = XmTextGetString(w);
     +  old_len    = strlen(old_string);
     +
     +  if (from_pos < 0)
     +      from_pos = 0;
     +  if (to_pos >= old_len)
     +      to_pos = old_len;
     +  if (to_pos <= from_pos)
     +      to_pos = from_pos;
     +
     +  new_string = XtMalloc(value_len + old_len - (to_pos - from_pos) + 1);
     +  strncpy(new_string, old_string, from_pos);
     +  strncpy(new_string + from_pos, value, value_len);
     +  strncpy(new_string + from_pos + value_len, old_string + to_pos, 
     +         old_len - to_pos);
     +  new_string[value_len + old_len - (to_pos - from_pos)] = '\0';
     +  XmTextSetString(w, new_string);
     +  XtFree(new_string);
      }


003. The source argument field `()' is not updated (i.e. when
     clicking on some source item)

     Category: behavior

     Cause: XmText does not yet support selections.
     `XmTextGetSelectionPositon' is not implemented.

     Fix: unknown


004. The source popup menu (clicking the right mouse button when
     pointer is on a source item) does not work.

     Category: behavior

     Cause: unknown

     Fix: unknown


005. The menu bar items are too close together.

     Category: visual

     Cause: unknown

     Fix: unknown


006. The file filters (File->Open File, File->Open Core, ...) do not work.

     Category: behavior

     Cause: unknown

     Fix: unknown


007. `Preferences' buttons (Options->Preferences) stick out.
     There should be no 3d-border around the four preferences buttons.

     Category: visual

     Cause: unknown

     Fix: unknown


008. The `Preferences' panel size (below buttons) is incorrect.  With
     OSF/Motif, it extends to the maximum size of the four preference
     panels (i.e. the `Startup preferences' panel).  With LessTif, it
     extends to the size of the first preference panel.  The code to
     handle the panel size is in `add_panel()' in `ddd/ddd.C'.

     Category: visual

     Cause: unknown

     Fix: unknown


009. Option buttons show `OptionButton' instead of the given label string.

     Category: visual

     Cause: unknown

     Fix: unknown


010. The `Settings' panel (Options->Settings) is not scrolled.

     Category: behavioral

     Cause: unknown

     Fix: unknown


011. Paned windows don't work.  Dragging sashes has strange effects.

     Category: behavioral

     Cause: unknown

     Fix: unknown


012. The `F1' menu accelerator (Help->On Context) has no effect.

     Category: behavioral

     Cause: unknown

     Fix: unknown


013. Moving `Up' or `Down' in the `Backtrace' window
     (Stack->Backtrace) does not clear the last selection.  Only one
     line should be selected.

     Category: behavioral

     Cause: unknown

     Fix: unknown


014. In the DDD manual (Help->DDD Manual), selecting a title on the
     left causes the cursor to jump on the appropriate section in the
     right, but the window is not scrolled such that the section is at
     the top.

     Category: behavioral

     Cause: unknown

     Fix: unknown

CLOSED DEFECTS:
---------------

Application Specific Defects
----------------------------

Mosaic:

2) Form layout in Mosaic is a problem.  Select "File", then "Find in Current".
   After 6 messages
   "Warning: XmForm form Layout algorithm bailing out after 200 iterations"
   dialog is displayed, but PushButtons are the full height of the Form.
   This is just one example -- initial layout of Mosaic has the world button
   on top of the Security Status button and the Encryption Status button;
   however, if you tear off the toolbar, and pop it back on, the buttons appear
   just fine.

3) RowColumn is *almost* right in Mosaic.  With the toolbar, the bottom
   shadow of the buttons in the toolbar is truncated.  I'm not sure if the

4. Cascade buttons on popup menus do not function

Nedit:

1. "Open File" doesn't work due to FileSB bug (see General Defect #3).


Xmcd serious:

4. Xmcd uses XmAddWMProtocolCallback() to register callback functions
   for the WM_DELETE_WINDOW atom.  This does not work under lesstif.
   When the xmcd main window is closed via the window manager, no callback
   occurred.
   [FIXED: Missing XmAnyCallbackStruct caused SIGSEGV; move WmProtocolHandler
    to position of post_hook in the protocol callback (as per Motif) -- Mitch]

5. The Help() action does not seem to be implemented in the XmRowColumn
   widget.  Hence, the xmcd help feature does not work for the various 
   CheckBoxes and RadioBoxes (containing ToggleButtons).  When these
   widgets are first mapped we get the following messages:

   Warning: Actions not found: Help
   ...

Xmcd not serious:

4. XmString handling is a bit strange.  Double newline characters "\n\n"
   translated into XmString via XmStringCreateLtoR() will display only
   as a single newline in a widget.
   [FIXED: XmString wasn't handling extra newlines well.  It needed to handle
    preceding newlines (count them, then compute the height of them by
    multiplying by the height of the first segment), and trailing newlines
    (increment height by the height of the last segment parsed) -- Mitch]

Xmmix:

3. XmStringConcat() doesn't work correctly, the concatenated portions
   do not show up when displayed in widgets.  This is evident in xmmix's
   Help->About pop-up window.
   [FIXED: XmString problem -- Mitch]

4. The window title bar string of the XmFileSelectionBox widget in xmmix
   doesn't get set to the proper string from the call:
   XtVaSetValues(fsform, XmNdialogTitle, xs);
   [FIXED: booboo in BulletinBoard set_values() -- Mitch]

2. Xmmix registers a XmNfocusCallback routine on the main window XmForm
   widget.  This doesn't work.  No callback is done when the main window
   receives input focus.
   [FIXED: Form had no focus_moved proc in the class structure -- Mitch]

Xephem:

1. Control -> Plot -> Select fields ( select some fields) -> Plot to file
   dies with a segmentation fault
   [Fixed. The dialogs show "message" as text which is not very informative.
    I'll look into that shortly. -- Danny]

2. View -> Sky view -> Locate -> (select any object below the horizont ):
   dies with segmentation fault intstaed of popping up some message box
   [Fixed. Can't reproduce; probably the same bug as above. -- Danny]

3. Help -> (select any item) brings up an empty text window
   [Fixed. I implemented XmTextReplace which was called here. -- Danny]

6. View -> Sky view -> (Point to object with right mouse buttom, select
   e.g. point) doesn't anything.

Xmmix bugs:

1. On startup, I get this message:

   Warning: 
       Name: itemsListHSB
       Class: XmScrollBar
       Specified value is greater than maximum value minus slider size.

   I don't know where this came from but it doesn't occur with "real"
   M*tif.

5. On random occasions the main window would stop accepting any input
   (mouse clicks or keyboard) and freeze up...

General Defects
---------------

3) FileSB: GetValues of XmNdirSpec returns the directory name without the file
   name. This breaks nedit.
