==============
1999/03/12 05:16:40
author: gritton
ToggleB.c(1.42)

Merged in NEWMENUS stuff as best as would fit
 (Rick, you may want to make sure it still works as you expect).
RepType check: indicatorType toggleMode.
FillOnSelect should default to the value of indicatorOn.
Both fillOnSelect and visibleWhenOff have this "Boolean" default of 85.
 This is apparently someone's idea of something like XmUNSPECIFIED.
SelectGC shouldn't care if the background is stippled.
BackgroundGC uses the background color, but ignores the pixmap.
Don't arm an already armed button, or select an unarmed one.
Select resets armed before the callback.
Disarm resets armed and visual_set, and redraws before the callback.
EnterWindow was calling _XmPrimitiveLeave.
Most actions call expose functions directly; only Select calls the method
 (and I'm not sure why it would need to).  The rest just draw whatever is
 necessary to show the changed state (often just the indicator).  I made
 a new function for this, draw_toggle, which handles both cases.
ButtonDown now calls the armCallback.
IndicatorSet means something totally different: it means the indicatorDim
 has been explicitly set.  If it's implicit (indicatorSet=False), the
 indicatorDim tracks the label internal geometry, but once explicitly set,
 it stays there.  Strangely, pixmap labels always yeild "explicit" size.
This means that tracking the toggle state is done only with set,
 visual_set, and armed.  It's still overkill.  Visual_set: don't use this
 for menu items, as they only get their borders redrawn.
The default (implicit) indicatorSize isn't just a constant; It's a function
 of the label's string/pixmap height (different for pixmaps, strings, and
 strings in menus).
For implicit indicators in string labels, it is drawn even even with the
 first line, not centered like the other cases.
Make sure actions/etc expose and flush before calling callbacks.
Add a blank KeySelect action.
Initialize and set_values: make sure there's enough room for extra pixmaps.
Make use of selectInsensitivePixmap everywhere it needs to be.
Don't make the indicatorSize smaller in initialize, but do draw n_of_many
 (square) indicators a bit smaller than their listed size.
XmToggleButtonSetState was checking more cautiously that Motif was.
Have XmToggleButtonSetState call _XmToggleButtonSetState for its dirty work.
Don't call the callback in _XmToggleButtonSetState if skipCallback is set.
Change the way initialize computes margin values, and add such computations
 to set_values as well.
If the only visible change in set_values is "set", just toggle it.
Add some more conditions to set_values's refresh_needed.
The indicator should be drawn offset by marginWidth, but not by spacing.
Treat an empty string's indicator like a pixmap's, for proper sizing.
Put the indicator on the right if text is right to left.
Fix syn_resources entry for indicatorSize.
The gadget needs to accept Xm_MULTI_ARM/ACTIVATE events, and treat them like
 their non-multi counterparts.
indicatorOn=False/FillOnSelect=True only applies to string labels.
Implement 2.0 stuff: detailShadowThickness, indeterminatePixmap,
 indeterminate (fix up).
==============
1999/03/12 05:16:41
author: gritton
ToggleBG.c(1.42)

Merged in NEWMENUS stuff as best as would fit
 (Rick, you may want to make sure it still works as you expect).
RepType check: indicatorType toggleMode.
FillOnSelect should default to the value of indicatorOn.
Both fillOnSelect and visibleWhenOff have this "Boolean" default of 85.
 This is apparently someone's idea of something like XmUNSPECIFIED.
SelectGC shouldn't care if the background is stippled.
BackgroundGC uses the background color, but ignores the pixmap.
Don't arm an already armed button, or select an unarmed one.
Select resets armed before the callback.
Disarm resets armed and visual_set, and redraws before the callback.
EnterWindow was calling _XmPrimitiveLeave.
Most actions call expose functions directly; only Select calls the method
 (and I'm not sure why it would need to).  The rest just draw whatever is
 necessary to show the changed state (often just the indicator).  I made
 a new function for this, draw_toggle, which handles both cases.
ButtonDown now calls the armCallback.
IndicatorSet means something totally different: it means the indicatorDim
 has been explicitly set.  If it's implicit (indicatorSet=False), the
 indicatorDim tracks the label internal geometry, but once explicitly set,
 it stays there.  Strangely, pixmap labels always yeild "explicit" size.
This means that tracking the toggle state is done only with set,
 visual_set, and armed.  It's still overkill.  Visual_set: don't use this
 for menu items, as they only get their borders redrawn.
The default (implicit) indicatorSize isn't just a constant; It's a function
 of the label's string/pixmap height (different for pixmaps, strings, and
 strings in menus).
For implicit indicators in string labels, it is drawn even even with the
 first line, not centered like the other cases.
Make sure actions/etc expose and flush before calling callbacks.
Add a blank KeySelect action.
Initialize and set_values: make sure there's enough room for extra pixmaps.
Make use of selectInsensitivePixmap everywhere it needs to be.
Don't make the indicatorSize smaller in initialize, but do draw n_of_many
 (square) indicators a bit smaller than their listed size.
XmToggleButtonSetState was checking more cautiously that Motif was.
Have XmToggleButtonSetState call _XmToggleButtonSetState for its dirty work.
Don't call the callback in _XmToggleButtonSetState if skipCallback is set.
Change the way initialize computes margin values, and add such computations
 to set_values as well.
If the only visible change in set_values is "set", just toggle it.
Add some more conditions to set_values's refresh_needed.
The indicator should be drawn offset by marginWidth, but not by spacing.
Treat an empty string's indicator like a pixmap's, for proper sizing.
Put the indicator on the right if text is right to left.
Fix syn_resources entry for indicatorSize.
The gadget needs to accept Xm_MULTI_ARM/ACTIVATE events, and treat them like
 their non-multi counterparts.
indicatorOn=False/FillOnSelect=True only applies to string labels.
Implement 2.0 stuff: detailShadowThickness, indeterminatePixmap,
 indeterminate (fix up).
==============
1999/03/12 17:56:51
author: rwscott
RowColumn.c(1.191)

Don't try to disarm an item that does not have a menuProcs entry.
==============
1999/03/13 00:43:14
author: rwscott
CascadeB.c(1.111)
MenuUtil.c(1.48)
PushB.c(1.59)
RowColumn.c(1.192)


All because of the extended test51

CascadeB.c:_XmCBMenuBarDoSelect() - make this do what the man page says it
	does.

MenuUtil.c: DEBUGOUT statement

PushB.c:ArmAndActivate() - Arm gets called before we popdown the menu

RowColumn.c:_XmMenuBtnUp() - We must arm the first menu item here instead of
	CascadeB.c:_XmCBMenuBarSelect(), and also disarm it if the menu is
	going down.  This makes more sense to be doing this in RC as opposed
	to CascadeB.
==============
1999/03/13 01:20:42
author: rwscott
CascadeBG.c(1.97)

Bring the DoSelect in line with the Widget.  Have I ever mention how much
I dislike gadgets!!
==============
1999/03/14 06:10:59
author: gritton
Shadow.c(1.18)

Added BC functions _XmDrawSquareButton and _XmDrawDiamondButton.
==============
1999/03/14 06:13:25
author: gritton
ToggleB.c(1.43)
ToggleBG.c(1.43)

Make fillOnSelect apply to the indicator.
==============
1999/03/14 12:55:28
author: rwscott
CascadeB.c(1.112)
CascadeBG.c(1.98)
PushB.c(1.60)
PushBG.c(1.63)
RowColumn.c(1.193)
Traversal.c(1.30)


This mostly pertains to getting gadgets to work like the widgets.  The
cascades are pretty close, pushbuttons still need some work.  This was done
by changing the rowcolumn/test51 widgets into gadgets.

CascadeB.c:_XmCBMenuBarDoSelect() - Arm the first menu item here.  This
	should probably be a call to the RC menuProc for MENU_TRAVERSAL, but
	since that's not written yet we'll do it here for now.

CascadeBG.c:DoSelect() - ditto
	    MenuBarSelect() - completely replace this with something resembling
	the one from CascadeB.c.

PushB.c:LeaveWindow() - Only call the dis-arm callback if we are already
	armed.

PushBG.c:Activate() - do not disarm here
         ArmAndActivate() - Arm before we popdown the menus.
         EnterWindow() - Do not bring down the menu cascade.
         LeaveWindow() - Only call disarm if we are armed.

RowColumn.c:_XmMenuBtnDown() - Let the gadget process the event first, since
	this is what happens with widgets.  Do not bring down the menu
	cascade here.
	    _XmMenuBtnUp() - If keyboard traversal is enabled but nothing is
	posted, get rid of the grabs.

Traversal.c:


loads of MENU debugs all over.

I've noticed alot of

	    if (XtIsRealized(w))
		XtClass(w)->core_class.expose(w, event, NULL);

in the Gadget code.  This is not really correct!!  Gadgets do not have a
core_class, it should be a rect... something or other.
==============
1999/03/14 15:28:46
author: rwscott
CascadeB.c(1.113)
CascadeBG.c(1.99)
RowColumn.c(1.194)


CascadeB.c:destroy() - get rid of the timer if it exists.
           StartDrag() - re-write to match the man page.
           CascadePopupHandler() - Don't ShellPopdown here, do it in the
           	StartDrag.
           DelayedArm() - Popdown any previously popped up shells.

CascadeBG.c:destroy() - get rid of the timer if it exists
            StartDrag() - re-write to match the man page.
            CascadePopupHandler() - Don't ShellPopdown here, do it in the
           	StartDrag.
           DelayedArm() - Popdown any previously popped up shells.

RowColumn.c:menuProcs:MENU_SHELL_POPDOWN - Disarm all the items in the menu.
==============
1999/03/14 16:15:52
author: rwscott
CascadeBG.c(1.100)


CascadeBG.c:DelayedArm() - Damn, CB_Submenu instead of CBG_Submenu.
==============
1999/03/15 04:57:25
author: gritton
Primitive.c(1.40)

Andreas Zeller: LessTif 0.88 ignores XtSetValues of XmNbottomShadowPixmap.
==============
1999/03/15 06:08:01
author: gritton
ResConvert.c(1.48)

Add ResConvert/define for XmONE_OF_MANY_ROUND and XmONE_OF_MANY_DIAMOND.
==============
1999/03/15 17:11:27
author: rwscott
CascadeB.c(1.114)
PushB.c(1.61)
RowColumn.c(1.195)
ToggleB.c(1.44)


With this the entire test51 passes, with NEWMENUS defined.

CascadeB.c:StartDrag() - After we cascade dis-arm all other items in the menu.

PushB.c:EnterWindow() - If dragging, popdown all menus posted from this one.

RowColumn.c:menuProcs:MENU_SHELL_POPDOWN - Don't dis-arm the menu items here.
            _XmMenuBtnUp() - Don't arm the first item here.

ToggleB.c:Disarm() - Don't dis-arm if we are not armed.
          ButtonDown() - Bring down any menus posted from this one as the
          first thing. Dis-arm any other items in this menu.
==============
1999/03/15 18:26:47
author: rwscott
PushB.c(1.62)


test51.c - add another case.

PushB[G].c:ButtonDown() - Dis-arm all other items in the menu
==============
1999/03/15 18:26:48
author: rwscott
PushBG.c(1.64)


test51.c - add another case.

PushB[G].c:ButtonDown() - Dis-arm all other items in the menu
==============
1999/03/15 20:30:03
author: rwscott
Form.c(1.138)


_XmFormLayout() - Calculate the size of the form before _every_ child is
	laid out.  We were doing it just for each iteration of all of the
	children, but test48 shows that we need to do it for each child.
	Either this or, we have to figure out how to tell the future in
	_XmFormAllPaths!!!!!

I haven't run all the tests by this yet, I'll pick it up at another location
and try them.
==============
1999/03/15 21:41:02
author: jon
Manager.c(1.62)

As Frank Baumgart, pointed out nedit sometimes causes a segfault here.

I've tracked part of the problem, and we're occasionally getting "comp"
values in _XmAcceleratorHandler() which point to memory that's all zeros.
Of course, this segfaults when we try XtIsSensitive on it.

As a workaround, I've installed a check for comp->core.widget_class, to
make sure it's non-zero before continuing.  If we get a 0 widget class,
complain to DEBUGOUT.

The actual problem may be somewhat harder to find.  I suspect that "comp"
may be the address of a widget that's been destroyed, and for some reason
we're still getting the callback, but that's a WAG.
==============
1999/03/15 22:35:28
author: rwscott
Form.c(1.139)


My earlier attempt to fix form/test48, screwed up anomg others test32.  Since
that is the control panel for something at the JPL I'd rather not screw it up
since it may be aimed my way.  This fixes test48 with a special case of
opposite constraints of ATTACH_OPPOSITE_WIDGET to the same widget, by setting
the size of the widget with the constraints to the size of what it is
constrained to.  It's in there with the special case of top/bottom NONE.

By the way, great test, complete with expected values and the test main loop.
My only complaint is that it doesn't use XtAppInitialize, and is therefore
difficult to put in FallBack resources.  Hopefully others will catch on!!!
==============
1999/03/16 06:41:30
author: gritton
ToggleB.c(1.45)
ToggleBG.c(1.44)

Roll 2.0 ToggleB stuff into the 1.2 files.
==============
1999/03/16 20:24:58
author: rwscott
CascadeB.c(1.115)
RowColumn.c(1.196)

Some more tweaks of the menu system.  I think I'm starting to figure out
what some of those un-implemented functions in the RC menuProcs should be.
==============
1999/03/17 03:34:55
author: rwscott
CascadeB.c(1.116)
CascadeBG.c(1.101)
MenuUtil.c(1.49)
PushB.c(1.63)
PushBG.c(1.65)
RowColumn.c(1.197)
ToggleB.c(1.46)
ToggleBG.c(1.45)
Traversal.c(1.31)

More NEWMENU stuff.  I think this is very close.  Keyboard traversal seems
to be working now also.
==============
1999/03/17 06:45:58
author: gritton
RowColumn.c(1.198)
ToggleB.c(1.47)
ToggleBG.c(1.46)

Fixed up one_of_many radio box handling, which I probably broke with my
 recent big toggleB patch.  I've cleaned up the _XmRadioHandler function,
 which I've now called _LtRadioHandler to reflect its non-M*tifness.
 The callbacks now get called in the same order and with the same cbs->set
 and w->toggle.set as M*tif does it.
XmToggleButtonSetState only enforces the radio box behavior when notify is
 false.  Otherwise, you can set it to whatever you want.
==============
1999/03/17 11:25:04
author: rwscott
RowColumn.c(1.199)

Don't allow multiple MENU_FOCUS_SAVES again. I can't figure out how to
balance these in all cases.
==============
1999/03/17 15:27:21
author: rwscott
Form.c(1.140)


The recent fix for test48 will not work in all cases.  So lets try this.
==============
1999/03/17 18:48:42
author: rwscott
CascadeB.c(1.117)


StartDrag() - Highlight the CascadeButton _after_ disarming all the items in
	the menu.
==============
1999/03/18 05:55:39
author: gritton
DrawnB.c(1.34)

Allow Label to munge the size if the DrawnB has a string or pixmap.
Don't check XtIsRealized in expose until after Label's method is called.
==============
1999/03/18 15:10:26
author: rwscott
Form.c(1.141)


_XmFormLayout() - test13 has pissed me off for a long time.  I think I've
	finally got it figured out.  In top/left cases of the layout,
	do not let a widget's height/width get smaller if WidthChangeMode is
	true.

This gets test13 as close as 1 pixel off, which will be fixed by a slop value
shortly, and may allow the removal of some of the truely ugly stuff that
goes on in XmFormPath to deal with ATTACH_OPPOSITE_WIDGET.
==============
1999/03/19 00:26:46
author: jon
MenuUtil.c(1.50)

This should fix rowcolumn test40.

I believe the problem was around line 539.  Under the conditions I tried,
the if test never passed, so _XmMenuNextItem was never called.  I think
I've changed the test to what was the original intention now.  This seems
to make kbd traversal of menus for NEWMENUS work nearly perfectly.  The
only remaining problem I found was that pressing enter doesn't activate an
armed button, but space does.  This is a long-standing known problem.

*Nice* work Rick!

When were you planning on revealing this to the rest of the world?

-Jon
==============
1999/03/19 01:05:15
author: jon
MenuUtil.c(1.51)

remove some debugging printfs that slipped through
==============
1999/03/19 01:10:41
author: jon
TearOff.c(1.35)

fixing core dump in _XmTearOffInitiate w/ NEWMENUS
==============
1999/03/19 01:22:28
author: jon
MenuUtil.c(1.52)

One more tweak...pesky printfs!
==============
1999/03/21 16:55:39
author: rwscott
CascadeB.c(1.118)
MenuUtil.c(1.53)


CascadeB.c:_XmCBMenuBarSelect() - When I post a menu bring down any menus that
	are posted from it.

MenuUtil.c:_XmMenuEscape() - When you do a MenuEsc while a TornOff menu is
	being displayed in its MenuShell we need to clean up by putting the
	menu back into the ToplevelShell.
	   _XmMenuTraversalHandler() - Allow a traverse left/right if the menu
	is an ActiveTearOff but is not currently torn off.
	When traversing right in a cascade button, don't try to post the menu
	if there isn't one.  Also, arm the first non-tearoff button child of
	the menu instead of the first child.
==============
1999/03/21 17:18:18
author: rwscott
TearOff.c(1.36)


TearOff.c:_XmTearOffInitiate() - Do a MenuButtonPopdown to take down the menu
	tree.  However since this is sort of going to still be posted we have
	to fix up the RC_CascadeBtn after the popdown.

I think the now addresses all of Jon's concerns with the NEWMENUS stuff.
==============
1999/03/22 17:57:22
author: rwscott
CascadeB.c(1.119)
RowColumn.c(1.200)



CascadeB.c:_XmCBMenuBarSelect() - Disarm items in the sub-menu of the menu
	we are popping down.  Alot of this dis-arm stuff will be moving
	over to RC_MenuShellPopdown, sometime.

RowColumn.c:constraint_set_values() - bump the requested positionIndex by 1,
	if there is a TearOffControl.
==============
1999/03/23 18:38:31
author: strauman
ScrolledW.c(1.108)

 - fixed a detail in ScrolledW: Their SW in `variable' mode
   doesn't shrink nor grow at creation time. Instead it enforces
   its size on the work window.
   There's also a new `scrolledwindow/test19' to demonstrate this
   behavior.
==============
1999/03/23 22:34:35
author: rwscott
RowColumn.c(1.201)


After a little _clear_ thought.....I only want to muck around with the
positionIndex if it is going to change.  If this is the case I bump the new
positionIndex by 1, to get it after the TearOffControl.

This keeps test51, test53, and hopefully Jon happy.  There's still the issue
of an item being _created_ with a specified positionIndex. This gets into the
issue of the OrderProc.......later....Not to mention what happens when you do
a GetValues for positionIndex??  It doesn't seem to be a synthetic resource..
==============
1999/03/24 01:16:53
author: rwscott
Form.c(1.142)


Let's clear up some stuff before I start cleaning up the menus stuff....

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.

BTW Xinvest is spitting out a bunch of

Warning:
    Name: button_14
    Class: XmToggleButton
    illegal value (0) for rep type IndicatorType
==============
1999/03/24 05:49:53
author: gritton
ToggleB.c(1.48)
ToggleBG.c(1.47)

Fix test for adjusting margins for indicator in set_values.
==============
1999/03/25 00:31:37
author: rwscott
CascadeB.c(1.120)
CascadeBG.c(1.102)
MenuShell.c(1.77)
MenuUtil.c(1.54)
PushB.c(1.64)
PushBG.c(1.66)
RowColumn.c(1.202)
TearOff.c(1.37)
ToggleB.c(1.49)
ToggleBG.c(1.48)


Landing the NEWMENU stuff....

Next time I do something like this I'm going to figure out how to branch the
CVS tree.
==============
1999/03/25 14:07:46
author: rwscott
MenuUtil.c(1.55)
ToggleB.c(1.50)

Improve traversal in tear-off's somewhat.  Note tear-offs still need alot
of work.
==============
1999/03/25 15:20:25
author: rwscott
CascadeBG.c(1.103)
MenuUtil.c(1.56)
RowColumn.c(1.203)

CascadeBG.c:menuProc:XmMENU_ARM() - set the MGR_ActiveChild field of the
	menu.  This allows traversal past Goto in xdir.
==============
1999/03/25 17:05:08
author: rwscott
CascadeB.c(1.121)

Move a couple of things around for the new test51 cases.
==============
1999/03/26 00:27:26
author: rwscott
BulletinBoard.c(1.45)
DialogS.c(1.18)
FileSB.c(1.67)
Manager.c(1.63)
SelectionBox.c(1.40)
TravAct.c(1.10)
Traversal.c(1.32)
Vendor.c(1.42)


A whole wack of DEBUG stuff....

Okay....

run DEBUGSOURCES=RWS1 mgdiff file1 file2
Btn1Down on File
Btn1Up on File
Btn1Down on Open Left
Btn1Up on OpenLeft

You'll see 2 line of output from Traversal.c:_XmMgrTraversal() of the form

KeyboardFocus set to "shell" "child of shell"

The first line has mgdiff, the ApplicationShell, and Text, the TextField in
the FSB.  This should not be happening!!!! The _XmFindTopMostShell(Text)
should be returning openfile_popup, like in the second line.  So the
focus_item of the ApplicationShell is now Text.  When you press the Cancel
button the dialog gets destroyed, along with Text, focus goes back to the
ApplicationShell and tries to set the focus to Text, which has been destroyed.

So....how the hell is this happening????

I have a trap in TravAct.c right now that prints out an _XmWarning and manages
to carry on, but Text should _never_ get into the focus data for the
ApplicationShell.

Who is our Traversal expert??  I see a few MLM's and a couple references to
danny.
==============
1999/03/26 01:43:02
author: rwscott
Traversal.c(1.33)

Highlight the traversal problem a little sooner with a Warning.
==============
1999/03/26 03:05:24
author: rwscott
CascadeB.c(1.122)
TearOff.c(1.38)

RC_LastSelectTopleve in a tear off should still point at the original menu.
Move some stuff around to get the ordering correct.
==============
1999/03/26 03:28:18
author: rwscott
CascadeBG.c(1.104)

Damn, forgot the Gadget again.....
==============
1999/03/26 20:03:18
author: rwscott
CascadeB.c(1.123)
MenuShell.c(1.78)
RowColumn.c(1.204)

Shuffle things around to fit the new cases.

This is like trying to curve fit with about 500 variables!!!!
==============
1999/03/26 20:41:16
author: rwscott
CascadeB.c(1.124)

Opps, forgot to arm the menubar when the cascade doesn't have a menu.
==============
1999/03/27 18:02:25
author: rwscott
CascadeB.c(1.125)
CascadeBG.c(1.105)
Label.c(1.99)
MenuUtil.c(1.57)
PushBG.c(1.67)
RowColumn.c(1.205)
ToggleB.c(1.51)
ToggleBG.c(1.49)


CascadeB.c:_XmCBMenuBarSelect() - Add a TRAVERSE_CURRENT.  This is the cause
	of not being able to traverse left/right in a menubar with a menu
	posted with no Sensitive items in it.
	(ml File menu with no items selected)

	Get rid of the MGR_ActiveChild stuff.

CascadeBG.c:MenuBarSelect() - see above.

	Make sure we set MGR_ActiveChild when we arm/dis-arm.

Label.c: debug stuff

MenuUtil.c:_XmMenuTraverse[Left | Right | Up | Down]() -
       If we are in a menu that also has gadgets, and the gadget is the
       currently armed item, and the pointer is over a widget in the menu,
       the widget will get the event that should be going to the gadget, as
       it should.  In this case we need to traverse from the gadget.
       (nedit Preferences menu)

PushBG.c: Make sure we set MGR_ActiveChild when we arm/dis-arm.

RowColumn.c:MenuEnter() - Do not set the focus here.  If you press a menu
	button, then move the cursor out of the button, this will steal the
	traversal events from the buttons.

ToggleB.c: Get rid of the MGR_ActiveChild stuff.

ToggleBG.c:menuProcs - Don't arm if armed, don't dis-arm if dis-armed.

	Make sure we set MGR_ActiveChild when we arm/dis-arm.
==============
1999/03/27 22:44:54
author: rwscott
CascadeB.c(1.126)
MenuUtil.c(1.58)
PushB.c(1.65)
ToggleB.c(1.52)

Clean out some of the "OLDMENU" stuff
==============
1999/03/28 16:08:46
author: rwscott
FileSB.c(1.68)
MessageB.c(1.32)


Decided to start off easy today, so I put on my "pixel police" hat....

Someone, Jamie, has been tweaking toggle buttons lately.  You may want to
take a look at the vasimple tests.  They mostly use toggle button gadgets
and all seem to be off by a couple of pixels.  I've also noticed that the
indicators seem to be too large on the xmcd main panel. xmcd is a little
tricky, since it sets the size of the toggles to be less than they want to
be, IIRC.

Also check out togglebplus/test1. This worked resonably well with
ToggleB.c:1.41. The geometry was off, but at least you could read the buttons.
==============
1999/03/29 01:24:55
author: rwscott
CascadeBG.c(1.106)
MenuUtil.c(1.59)
PushBG.c(1.68)
RowColumn.c(1.206)
ToggleBG.c(1.50)

Some OLDMENU cleanup
==============
1999/03/29 02:06:08
author: rwscott
DrawingArea.c(1.35)
misc.c(1.11)

Attempt to build warning free.....
==============
1999/03/29 17:11:26
author: rwscott
FileSB.c(1.69)

The numbers I had for test6 didn't jive with my Motif.  It seems that the
buttons have a different width/height if the file list is not shown.
==============
1999/03/29 18:24:53
author: strauman
CascadeB.c(1.127)

watch out, when coding

	if (RC_PopupPosted(XtParent(w)) == CB_Submenu(w) {
		do something with *CB_Submenu(w);
	}
because equality of two pointers holds also if both are NULL.
==============
1999/03/29 23:37:59
author: rwscott
FileSB.c(1.70)
SelectionBox.c(1.41)


Some small tweaks to the placement of things, mainly when other things aren't
there.
Use XmCreateDialogShell to create the dialog shell. test5 and 7 were showing
that the parenting was real bad. Only the geo of the label should be printed.

This gets all of the filesb tests passing, with the exception of the memory
leak test. We're leaking 1400 bytes simply creating and destroying one of
these!! Anyone good at finding leaks?? I managed to shrink the leak a bit,
but not totally.
==============
1999/03/30 07:20:18
author: gritton
ToggleB.c(1.53)
ToggleBG.c(1.51)

Set implicit indicator size even if indicator isn't on (for ToggleBplus).
==============
1999/03/31 00:29:42
author: rwscott
FileSB.c(1.71)
SelectionBox.c(1.42)

Apparently I did more harm than good trying to plug the leaks....so back
some of them out.

Anyone looking for leaks be warned that XdbXmString2String leaks like a
funnel!!!! And it is all over the place in FileSB
==============
1999/03/31 02:24:10
author: rwscott
List.c(1.75)


List.c:_XmListFreeItems() - Here we are Free'ing the List_Items and the
	List_InternalList items, however the internal list is an array of
	structures, one element is an _XmString.  This was not being released.

XmString.c:XmStringCompare() - XmStringGetNextSegment allocates space for
	both the text and the tag. We have not been freeing the space for the
	tag. If we can't get the second segment, we bail, which means we need
	to release _both_ string contexts.

This brings the FileSB leak down to a resonable 409 bytes from 2000.  Still
not perfect, but better.....
==============
1999/03/31 03:00:12
author: rwscott
List.c(1.76)


Something is _really_ trampling on my CVS traffic tonight. The last commit
_totally_ trashed List. So here it is again.......

List.c:_XmListFreeItems() - Here we are Free'ing the List_Items and the
	List_InternalList items, however the internal list is an array of
	structures, one element is an _XmString.  This was not being released.

XmString.c:XmStringCompare() - XmStringGetNextSegment allocates space for
	both the text and the tag. We have not been freeing the space for the
	tag. If we can't get the second segment, we bail, which means we need
	to release _both_ string contexts.

This brings the FileSB leak down to a resonable 409 bytes from 2000.  Still
not perfect, but better.....
==============
1999/03/31 18:51:22
author: strauman
ScrolledW.c(1.109)

 - minor bugfix.
 - geometry_manager _must_ do the layout before making geometry request to
   the parent.  Otherwise we may end up with more space, then doing the
   layout, which possibly modifies `wants' leading to rejection of the child
   request (--> old configuration with new ScrolledW window size).
 - NOTE: swallow this bitter pill: I made

    _XmScrolledWPreferredSize() _XmScrolledWLayout(), _XmScrolledWConfigureChildren()

   public, so I could reuse them in MainW (seems things have been like this already
   at an earlier time). Also, one new field had to be added to XmSWValues / XmMWValues
   (namely the y position of the `scrolledW part' of the MainW [0 for a ScrolledW]).
==============
1999/03/31 19:04:44
author: strauman
MainW.c(1.46)

fixed several layout / geometry management problems of the MainW.

 - initial size of their mainw in automatic mode is
   not 100x100.
 - change of the command window position requires relayout.
 - fixed MANY layouting details (border width issues, child
   requesting size and/or border width change, margins, etc.)
 - NOTE: _XmScrolledWPreferredSize(), _XmScrolledWLayout()
         and _XmScrolledWConfigureChildren() are now used to
         avoid duplicating code (and maintaining two copies).
         One field (SwY) had to be added to XmSWValues / XmMWValues
         for this purpose.

         This is UGLY however - a method should be used to provide
         sharing functionality. Alas, we must not touch ScrolledWP.h.
         But what about a class extension record???
 - geometry_manager _must_ do the layout before making geometry request to
   the parent.  Otherwise we may end up with more space, then doing the
   layout, which possibly modifies `wants' leading to rejection of the child
   request (--> old configuration with new ScrolledW window size).
==============
1999/03/31 22:30:00
author: danny
Makefile.am(1.27)

Run libtoolize etc. in lib/Xlt as well.
	That got Xlt configure back to life.
Copy part of TOP/configure.in into lib/Xlt/configure.in to make it
	figure out the version_suffix as well.
	That got Xlt to compile.
Add hack to TOP/configure.in to figure out whether libtool will
	do shared libraries or not, same for static libs.
Fixes to lib/Xm*/Makefile.am to allow better installation, figuring
	out whether we do static, dynamic, or both.
==============
1999/04/01 00:51:18
author: rwscott
MenuUtil.c(1.60)


MenuUtil.c:_XmMenuNextItem()
MenuUtil.c:_XmMenuPrevItem()
MenuUtil.c:_XmMenuArmItem() - Pay attention to the setting of TraversalOn when
	determining an item.

This helps the nedit Search menu with it's FakeMenuItems.
==============
1999/04/01 06:16:55
author: gritton
CascadeB.c(1.128)
CascadeBG.c(1.107)

Some easy stuff first...

Check skipCallback before calling activateCallback.
No point having a duplicate border_[un]highlight that does exactly the same
 as Primitive's.  But M*tif still has something so tag it FIX ME.
Make sure actions/etc expose and flush before calling callbacks.
Force traversalOn to be true for all but option menus.
MappingDelay must be non-negative; submenu must be a pull-down menu.
Take advantage of Lab[G]_MenuType.
==============
1999/04/01 09:43:34
author: strauman
MainW.c(1.47)

 - _XmMainWPreferredSize(): slightly changed the child query algorithm
   to better handle resize.
==============
1999/04/01 21:25:03
author: danny
Makefile.am(1.28)

Fix Mrm Makefiles: installation of static vs. dynamic libs.
==============
1999/04/02 00:45:32
author: rwscott
Text.c(1.85)
TextStrSo.c(1.22)


Text.c:Destroy() - We allocate the LineTable in Initialize, so we should Free
	it in destroy, right??

TextStrSo.c:_XmStringSourceDestroy() - Even if the length values are zero, we
	have still allocated space with XtNewString(""), so Free it.

This brings Text down to around 88 bytes, which puts FileSB back in the lead..
==============
1999/04/02 06:11:25
author: gritton
CascadeB.c(1.129)
CascadeBG.c(1.108)

Handle a user-specified cascadePixmap.
_XmCreateArrowPixmaps doesn't set the cascade's x/y/width/height.  That's
 done elsewhere, where it also happens for non-default pixmaps.
Place the cascade pixmap in resize (and elsewhere) on different criteria.
Put cascade pixmap on left (arrow facing left) for XmSTRING_DIRECTION_R_TO_L.
Clear up _XmCreateArrowPixmaps, not making its own GCs unless it has to,
 and making it lean less gadgetwards.
==============
1999/04/02 08:00:31
author: jon
Text.c(1.86)

Rick recently asked someone to optimize text since it was scrolling like a
dog.  I profiled it (cd test/Xm/text/ && ./test5 ../../libtool, where
libtool is just a conviently large file), and found that it was spending
damn near all of its time in strlen().  As the contents of the text window
get bigger, the problem got progressively worse.

This minor patch fixes that problem and speeds up scrolling text by maybe
10 times or more.  I don't have quantitative numbers because I was never
patient enough for the thing to finish.

It seems that strlen() on the contents of a Text window may be a bad
idea.  I substituted XmTextGetLastPosition() which works well here.  I
also substituted XmTextGetLastPosition() for a strlen() in
XmTextFindPosition(), but there's not a test which uses that.  It
*shouldn't* break anything, though.
==============
1999/04/02 20:58:19
author: jon
DebugUtil.c(1.42)
FileSB.c(1.72)

Plugging XdbXmString2String leaks in FileSB, and marking other leaks with
  /* FIX ME: leaks */.  There are still a handfull of leaks, mostly
dealing (of course) with The Cursed XmStrings.   There's also a leak
indicated in List.c's _XmListReallocSelectedItems() which is called via
XtSetValues from FileSB.c.

NOTE: Altered XdbXmString2String so that it keeps a static copy of the
pointer to the returned string, and frees it on the next call.

THIS MEANS YOU CAN ONLY CALL XdbXmString2String ONCE IN A SINGLE printf.

I've updated all the XdbXmStringn2String calls in libXm to deal with this,
but there may be some problems in the test tree.
==============
1999/04/04 07:47:07
author: gritton
RCUtils.c(1.97)

An option button can shrink as well as grow to match the largest option
 selection.
The option button height depends on shadow thickness, and the width depends
 on the popup pane's shadow thickness and a stringDirection-dependant margin.
==============
1999/04/04 07:50:09
author: gritton
CascadeB.c(1.130)
CascadeBG.c(1.109)

Default marginWidth is easier then it's currently made out to be:
 6 for menu bars, otherwise 2.
The cascade size is different for arrow and rectangle cascades, and depends
 on the shadow thickness.
The rectangle (option) cascade isn't a pixmap.  The rectangle has a size,
 but the cascadePixmap and armedPixmap are XmUNSPECIFIED_PIXMAP and the
 shadows are drawn in the expose, with even more complicated size stuff.
The defaults cascades (both arrows and rectangles) are drawn with the
 widget's shadow thickness.
Force highlight=0 for non-options in set_values as well as initialize.
Make sure there's room for the cascade pixmap, horizontally and vertically,
 and indepent of recomputeSize.  This replaces _XmCBCalcDimensions and the
 bit in initialize that absolutely set these.
Don't call resize in expose - not necessary once it's sized correctly
 in initialize and set_values.
I don't need ComputeMaximumWidth because the parent already does that for me
 (find_largest_option_selection in RCUtils.c).
==============
1999/04/07 20:51:49
author: rwscott
CascadeBG.c(1.110)
RowColumn.c(1.207)


CascadeBG.c:Something to do with option menus....more to come.

RowColumn.c: Restore the focus in MENU_BUTTON_POPDOWN, since this indicates
	a button has activated a menu choice, and the cascade is going down.
==============
1999/04/07 22:02:21
author: rwscott
CascadeBG.c(1.111)
RowColumn.c(1.208)


This helps option menus using the pointer. Why exactly this helps is still
under investigation....
==============
1999/04/08 01:09:14
author: rwscott
FileSB.c(1.73)



FileSB uses a synthethic resource handler to get the fileListItems. Our
handler was simply returning the SB_ListItems. However, since SelectionBox is
also using a synth. resource handler this is not valid. So let's use
_XmSelectionBoxGetListItems, the same way SelectionBox does.

Till, if you have already fixed this a better way, just reverse this one and
go with yours. I wasn't sure by your commit message if you were fixing this,
or just pointing it out.
==============
1999/04/08 01:19:09
author: rwscott
RowColumn.c(1.209)


menuProcs:XmMENU_TRAVERSAL - Just bail if there are no children in the menu.

This stops Jamies segfault in vasimple/test2.

BTW, this test looks much better in LessTif than Motif. Motif just shows some
blur of highlighting, at least you can tell its a button with LessTif.
==============
1999/04/08 19:32:30
author: strauman
FileSB.c(1.74)
List.c(1.77)
SelectionBox.c(1.43)

 - fixed some bugs and memory leaks. These were mostly due to problems
   when making copies of XmStrings or when cloning the list (List.c).

   NOTE:
   * whenever the user passes a complex resource to set_values that
     must be copied, the algorithm is

	 if ( equivalent( Something(new_w), Something(old_w) ) )
	 {
		Something(new_w) = Something(old_w) /* reuse old; don't touch their copy */
	 } else {
		Free( Something(old_w) );
		Something( new_w ) = MakeCopy( Something(old_w) );
     }

   * take care to release resources in destroy()


 - List.c:
   The list of selected items is _strictly_ a list of pointers to entries
   in the list; it does not maintain (i.e. alloc/free) its own entries.
==============
1999/04/09 11:11:48
author: strauman
DebugUtil.c(1.43)
FileSB.c(1.75)
TearOff.c(1.39)

 - Bugfix: Never do something like

           XmStringGetLtoR(..., &tmp);
           do something;
           XtFree(tmp);

   without testing for success of XmStringGetLtoR.
   You might end up releasing memory that was not allocated.
==============
1999/04/09 11:49:29
author: danny
ScrollBar.c(1.50)

Create a configure option to trigger verbose behaviour on ScrollBar's
behalf. After all, most of the verboseness that's happening is stuff
we do to ourselves.

The one that triggered me just now was setting a scrolledText to show
the last position of its text :
	XmTextShowPosition(msgtext, XmTextGetLastPosition(msgtext));
==============
1999/04/09 15:03:31
author: gritton
XmString.c(1.39)

XmStringGetLtoR should give back a NULL text if it fails.
==============
1999/04/09 15:28:50
author: strauman
Label.c(1.100)

 - removed _XmStringIsXmString() test branch on Accelerator resource in
   initialize / set_values (type is Xt String!).
==============
1999/04/09 15:28:51
author: strauman
LabelG.c(1.84)

 - removed _XmStringIsXmString() test branch on Accelerator resource in
   initialize / set_values (type is Xt String!).
==============
1999/04/10 00:55:22
author: gritton
CascadeB.c(1.131)

Widget doesn't allow for XmMENU_OPTION; only gadget does.
==============
1999/04/10 00:56:03
author: gritton
CascadeBG.c(1.112)

Don't draw option rectangle different if armed.
==============
1999/04/10 00:58:13
author: gritton
RowColumn.c(1.210)

Set RCC_MarginTop/Bottom only in constraint initialize, not set_values,
 and don't set it for option cascades without submenus (geometry hack).
==============
1999/04/10 01:03:24
author: gritton
RCUtils.c(1.98)

Option cascade height depends on RCC_MarginTop/Bottom, not shadow.
==============
1999/04/11 11:55:40
author: rwscott
DragOverS.c(1.15)


patch from segg for "obvious errors"
==============
1999/04/11 12:28:50
author: rwscott
Makefile.am(1.29)


Add $(DESTDIR) to all the install-data-hook targets
==============
1999/04/11 13:13:34
author: rwscott
TextF.c(1.80)


spinbox/test4a implies that _XmTextFTraitRec should not be static, like the
one in Text.
==============
1999/04/12 16:39:43
author: strauman
ScrolledW.c(1.110)

 - fixed a memory leak (sorry, I had to resurrect class_initialize(),
	the translation table (xlt) is now compilet in this method):

	The compiled xlt returned by XtParseTranslationTable() is dynamically
	allocated by Xt. The corresponding destructor, _XtFreeTranslationTable(),
	however is not `officially' exported by Xt (i.e. it's declared by
	including IntrinsicI.h).

	Therefore, XtParseTranslationTable() should only be called for
	`static' tables, i.e. tables that are not changed and that are
	kept around for the lifetime of the program.
	Typically, this is done in an object's class_initialize() method.

	AFAIK, the only way to destroy a translation table constructed by
	XtParseTranslationTable() would be to use XtCallConverter() and
	keeping track of the number of references of the compiled and cached
	translation table (XtCallbackReleaseCacheRef()).
	When the reference count drops to zero, Xt should then automatically
	destroy the translation table (implicitely) constructed by the
	converter.
==============
1999/04/12 17:04:16
author: strauman
Protocols.c(1.7)
Vendor.c(1.43)

 - fixed Vendor memory leaks.

   Vendor.c:

   Sorry for adding a _XmVendorExtDestroy() method (maybe they don't have it).
   However, this method does clean up resources allocated by
   _XmVendorExtInitialize().

   Protocols.c:

   XmRemoveProtocols now frees resources that were allocated by XmAddProtocols().
   The new routine _XmDestroyProtocols() removes all protocols and destroys
   all associated data. It is intended to provide a means to release everything
   allocated by _XmInitProtocols() and subsequent XmAddProtocols() & friends.

   I have changed the implementation of the protocol handler from the action/translation
   scheme to a mere event handler. This was necessary because the old approach caused
   memory leaks. (BTW, they don't have no XmProtocolHandler action either).

   A)
      The compiled xlt returned by XtParseTranslationTable() is dynamically
      allocated by Xt. The corresponding destructor, _XtFreeTranslationTable(),
      however is not `officially' exported by Xt (i.e. it's declared by
      including IntrinsicI.h).

      Therefore, XtParseTranslationTable() should only be called for
      `static' tables, i.e. tables that are not changed and that are
      kept around for the lifetime of the program.
      Typically, this is done in an object's class_initialize() method.

      AFAIK, the only way to destroy a translation table constructed by
      XtParseTranslationTable() would be to use XtCallConverter() and
      keeping track of the number of references of the compiled and cached
      translation table (XtCallbackReleaseCacheRef()).
      When the reference count drops to zero, Xt should then automatically
      destroy the translation table (implicitely) constructed by the
      converter.

   B)
      The action was added to the application context over and over again.
	  There is no way to remove actions from an app-context.
==============
1999/04/12 17:14:30
author: strauman
DragC.c(1.21)

 - avoid dereferencing NULL fw in drag_main_loop
==============
1999/04/12 17:51:15
author: strauman
TextOut.c(1.60)

 - fix memory leaks:

    Out_FontList must be released and taken care of in SetValues;

    free the widget list in _XmStringSourceDestroy
==============
1999/04/12 17:51:16
author: strauman
TextStrSo.c(1.23)

 - fix memory leaks:

    Out_FontList must be released and taken care of in SetValues;

    free the widget list in _XmStringSourceDestroy
==============
1999/04/12 23:18:14
author: rwscott
GeoUtils.c(1.43)
MessageB.c(1.33)
TextIn.c(1.41)


TextIn.c: fix a debug statement

GeoUtils/MessageBox: My recent change put one of my apps into an endless
	loop of geo. neg. Let's try this. I wish there was some official docs
	for this Geo stuff....It could be generally usefull.
==============
1999/04/12 23:29:51
author: rwscott
TextOut.c(1.61)


TextOut.c:_XmTextOutputCreate() - If Out_FontList is unspecified or NULL we
	get the default font list, which apparently makes a copy. If it is
	specified we are setting Out_FontListCreated = True. If we really
	created this I would like to know how??? This is causing ml to
	segfault whenever it destroys the message window. I'm changing this
	to False until such time that someone can show me how we created it.

Till, you may want to check this out, since you have been poking around this
stuff more than me. This hasn't been a problem up until now because we were
never freeing the FontList.
==============
1999/04/13 00:34:13
author: rwscott
BulletinBoard.c(1.46)


handle_geometry_manager() - Make sure BB_OldShadowThickness gets set to the
	thickness of the shadow that we draw, otherwise remnants are left
	behind.
==============
1999/04/13 02:09:12
author: rwscott
RowColumn.c(1.211)


XmMENU_BUTTON_POPDOWN - Only MENU_FOCUS_RESTORE if the menu is actually popped
	up. This should take care of all the warnings when using accelerators.
==============
1999/04/13 16:42:59
author: jon
Text.c(1.87)

Minor efficiency tweaks
==============
1999/04/14 21:54:25
author: rwscott
RowColumn.c(1.212)

Save the MENU_FOCUS when we post a popup
==============
1999/04/15 04:49:37
author: gritton
RowColumn.c(1.213)

All submenu-less cascades (not just options) have RCC_MarginTop/Bottom=0.
==============
1999/04/15 04:55:54
author: gritton
CascadeB.c(1.132)
CascadeBG.c(1.113)

Don't create an arrow pixmap if there's no submenu.
Cascade size comes from label's font height, not its textRect.
Better logic to decide when to call place_cascade from set_vales.
 If doing so, do it with the old geometry.
==============
1999/04/15 12:44:40
author: rwscott
RowColumn.c(1.214)


Jamie, this is for your overlapping pixmap problem with test53.

In constraint_initialize() we set up RCC_Margin[Top|Bottom]. We need to make
sure that these also get set in constraint_set_values if the margins get
changed.
==============
1999/04/16 00:30:42
author: rwscott
ToggleB.c(1.54)
ToggleBG.c(1.52)


Arm/Disarm - always draw_toggle no matter what the armed state was. In a menu
	you end up with sort of a premature Arm, so when the ArmAndActivate
	comes along it thinks it has already been armed, but really it has
	only been highlighted.

I think the Callbacks would have been happening correctly Jon, just the visual
was not correct.  This may be why there are 3 variables to indicate an on/off
value!!!
==============
1999/04/16 05:28:06
author: gritton
RowColumn.c(1.215)

Don't set RCC_Margin* in constraint_set_values for option cascades
 (even if they have submenus).
==============
1999/04/16 05:31:20
author: gritton
RCUtils.c(1.99)

Option menus break the rules of PACK_TIGHT: don't make the option cascade
 taller to match the option label.
==============
1999/04/17 01:10:48
author: rwscott
TextF.c(1.81)


compliments of "Clifford Smith" <clifford_smith@vela.ca>

    {"kill-next_character", kill_next_character},
should be:
    {"kill-next-character", kill_next_character},
==============
1999/04/17 05:25:42
author: gritton
CascadeB.c(1.133)
CascadeBG.c(1.114)

Just cleaning things up a bit.
==============


Executive Summary
Of 109 files, 45 changed, and 64 had no change

File            Current Rev. Last Release 
.cvsignore      1.1          1.1          No Change
.indent.pro     1.1          1.1          No Change
ArrowB.c        1.30         1.30         No Change
ArrowBG.c       1.25         1.25         No Change
AtomMgr.c       1.4          1.4          No Change
BaseClass.c     1.11         1.11         No Change
BulletinBoard.c 1.46         1.44         
Cache.c         1.8          1.8          No Change
CascadeB.c      1.133        1.110        
CascadeBG.c     1.114        1.96         
Command.c       1.17         1.17         No Change
CutPaste.c      1.8          1.8          No Change
DebugUtil.c     1.43         1.41         
Desktop.c       1.5          1.5          No Change
Dest.c          1.2          1.2          No Change
DialogS.c       1.18         1.17         
Display.c       1.14         1.14         No Change
DragBS.c        1.11         1.11         No Change
DragC.c         1.21         1.20         
DragDrop.c      1.7          1.7          No Change
DragIcon.c      1.10         1.10         No Change
DragOverS.c     1.15         1.14         
DragUnder.c     1.3          1.3          No Change
DrawingArea.c   1.35         1.34         
DrawnB.c        1.34         1.33         
DropSMgr.c      1.18         1.18         No Change
DropTrans.c     1.9          1.9          No Change
ExtObject.c     1.5          1.5          No Change
FileSB.c        1.75         1.66         
FontList.c      1.14         1.14         No Change
Form.c          1.142        1.137        
Frame.c         1.45         1.45         No Change
Gadget.c        1.16         1.16         No Change
GadgetUtil.c    1.8          1.8          No Change
GeoUtils.c      1.43         1.42         
Hash.c          1.6          1.6          No Change
ImageCache.c    1.14         1.14         No Change
LTCvt.c         1.6          1.6          No Change
LTV5Editres.c   1.4          1.4          No Change
LTV6Editres.c   1.6          1.6          No Change
LTXpm.c         1.7          1.7          No Change
LTfnmatch.c     1.3          1.3          No Change
LTglob.c        1.8          1.8          No Change
Label.c         1.100        1.98         
LabelG.c        1.84         1.83         
List.c          1.77         1.74         
MainW.c         1.47         1.45         
Makefile.am     1.29         1.26         
Manager.c       1.63         1.61         
MapEvent.c      1.13         1.13         No Change
MenuShell.c     1.78         1.76         
MenuUtil.c      1.60         1.47         
MessageB.c      1.33         1.31         
Messages.c      1.3          1.3          No Change
Mwm.c           1.3          1.3          No Change
Obsolete.c      1.4          1.4          No Change
PanedW.c        1.44         1.44         No Change
Primitive.c     1.40         1.39         
Protocols.c     1.7          1.6          
PushB.c         1.65         1.58         
PushBG.c        1.68         1.62         
RCUtils.c       1.99         1.96         
ReadImage.c     1.2          1.2          No Change
Region.c        1.5          1.5          No Change
RepType.c       1.10         1.10         No Change
ResConvert.c    1.48         1.47         
ResInd.c        1.11         1.11         No Change
RowColumn.c     1.215        1.190        
Sash.c          1.13         1.13         No Change
Scale.c         1.35         1.35         No Change
Screen.c        1.17         1.17         No Change
ScrollBar.c     1.50         1.49         
ScrolledW.c     1.110        1.107        
Selection.c     1.4          1.4          No Change
SelectionBox.c  1.43         1.39         
SeparatoG.c     1.13         1.13         No Change
Separator.c     1.12         1.12         No Change
Shadow.c        1.18         1.17         
ShellExt.c      1.4          1.4          No Change
Simple.c        1.19         1.19         No Change
TearOff.c       1.39         1.34         
TearOffB.c      1.18         1.18         No Change
Text.c          1.87         1.84         
TextF.c         1.81         1.79         
TextIn.c        1.41         1.40         
TextOut.c       1.61         1.59         
TextStrSo.c     1.23         1.21         
ToggleB.c       1.54         1.41         
ToggleBG.c      1.52         1.41         
TrackLoc.c      1.4          1.4          No Change
Transltns.c     1.6          1.6          No Change
TravAct.c       1.10         1.9          
Traversal.c     1.33         1.29         
UniqueEvent.c   1.4          1.4          No Change
VaSimple.c      1.6          1.6          No Change
Vendor.c        1.43         1.41         
VirtKeys.c      1.9          1.9          No Change
Visual.c        1.27         1.27         No Change
World.c         1.4          1.4          No Change
XmIm.c          1.9          1.9          No Change
XmOS2.def.dist  1.2          1.2          No Change
XmStrDefs.c     1.3          1.3          No Change
XmString.c      1.39         1.37         
Xmos.c          1.25         1.25         No Change
alloca.c        1.2          1.2          No Change
inlines.in      1.3          1.3          No Change
misc.c          1.11         1.10         
mkinline.c      1.4          1.4          No Change
xdnd.c          1.3          1.3          No Change
