The `PropagateChanges` function basically updates the coordinates
of the windows recursively from their parents down the window
hierarchy. If the window type of the current node, call it `W`,
is vertical (horizontal) then the x (y) coordinates are copied from
the parent's coordinates. In that case, the y (x) coordinates are
copied from the `Position` array of the parent using the index of
the current window. The new total length (`PMin`, `PMax`, `
PWidth`) of the partition of `W` is also recorded to calculate the
changes on its `Position` array. Then, a fixed length is reduced
from this total length for each packed window. The remaining width is
to be partitioned among the rest of the children proportionally, thus
a ratio is calculated by dividing the old length to the new. The `
Position` array is then updated with this ratio and effects are
propagated down to lower level windows. The pseudo-code algorithm of the
propagate changes operation (`PropagateChanges`) is listed in
Appendix .

Sun Sep 13 18:34:46 EDT 1998