The input parameters of the resize algorithm are the identification of
the window to be resized, direction and the amount of resize. The only
output parameter is the highest level node affected by the operation
for a screen update. The pseudo-code algorithm of the resize operation
(`Resize`) is listed in Appendix .

The algorithm initially climbs up the window hierarchy while the
current node is a G-Node with only a single child, starting from the
window to be resized, call it `W`. Then, the algorithm determines
the affecting node (`A`) by checking the window type of `W`
and the direction of resize. If they match the affecting node is
simply `W`. In case of a mismatch, if it is a G-Node, the
affecting node is the parent node. If it is an H-Node, the resize
operation is ignored, since the effects of the operation is limited to
the current group, where an H-Node determines the boundaries of the
group.

The algorithm then climbs up the hierarchy starting from the affecting node to find the boundary node, which is the lowest G-Node in the direction of the resize or it is an H-Node delimiting the group boundary. Lastly, the algorithm updates coordinates of the children of the boundary node in the direction of the resize operation and results are propagated to lower level windows. The boundary node is returned as the highest level node for a screen update.

Figure shows an example hierarchical window
layout and its corresponding window tree. In this example, window `
F` is resized to the left. When the algorithm is applied, the
affecting node is determined as node `V` and the boundary node as
node `Y`.

Sun Sep 13 18:34:46 EDT 1998