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.