I just got a bug report and a fix for this exact problem from
fisher@iscp.bellcore.com (Greg Fisher):


He isolated the problem a proposed a workaround which seems precisely
correct.  Here is the new implementation of XmpTableNewProposedLayout
which will be released with the next update in 5 weeks:

Xmp/Table.c:

void XmpTableNewProposedLayout( tw )
    XmpTableWidget tw;
{
    XmpTableConsiderSameSize(       tw );
    XmpTableProposedColsAndRows(    tw );
    XmpTableQueryParentForResize(   tw );    /* query only, no resize */

    /*
     * Since we only made a query, we *should* still need to continue.
     * However, Motif is broken so that we actually may already have
     * been resized.  In that case, the proposed layout is already
     * forgotten, so we should just quietly exit.
     */
    if ( tw->table.resize_status == RSdueToRequest )
    {
        XmpTableMakeColsFitQueryWidth(  tw );
        XmpTableMakeRowsFitQueryHeight( tw );
        XmpTableGetProposedChildSize(   tw );
        XmpTableSaveProposedLayout(     tw );
    }
    /* else the resize has already been done.  Our proposed layout would
     * have been forgotten in the process.
     */
}

The XpTable the fix is identical, except of course for the names:

Xp/Table.c:

void XpTableNewProposedLayout(  tw )
    XpTableWidget  tw;
{
    XpTableConsiderSameSize(       tw );
    XpTableProposedColsAndRows(    tw );
    XpTableQueryParentForResize(   tw );    /* query only, no resize */
    /*
     * Since we only made a query, we *should* still need to continue.
     * However, some manager widgets are broken so that we actually may
     * already have * been resized.  In that case, the proposed layout
     * is already forgotten, so we should just quietly exit.
     */
    if ( tw->table.resize_status == RSdueToRequest )
    {
        XpTableMakeColsFitQueryWidth(  tw );
        XpTableMakeRowsFitQueryHeight( tw );
        XpTableGetProposedChildSize(   tw );
        XpTableSaveProposedLayout(     tw );
    }
    /* else the resize has already been done.  Our proposed layout would
     * have been forgotten in the process.
     */
}

-------------------------------------------------------------------------
David Smyth				david@jpl-devvax.jpl.nasa.gov
Senior Software Engineer,		(818)306-6193 (do NOT use v-mail yet!)
CCCP, X and Object Guru.		office: 525/C165
Jet Propulsion Lab, M/S 525-3660 4800 Oak Grove Drive, Pasadena, CA 91109
------------------------------------------------------------------------- 
	"That Sun Windows thingy, what's it called?  You know, its
	really awful.  X?  Motif?  That's it - Motif! Yuck!"