In the bubble algorithm each window is associated with two additional attributes:

`r`: contraction ratio,`f`: strength of window to contraction

Basically, the bubble algorithm is run after move and resize operations in the layout to enforce bubble dynamics. In bubble dynamics, basically windows are resized keeping the window centers at the same location to avoid possible overlaps. The algorithm starts by relieving all contractions on windows while keeping the center of windows at the same location. Then, all overlaps in the layout are calculated and processed in decreasing order by area of overlap. New contraction ratios are calculated for each overlapping window pairs to eliminate any overlaps. Basically when overlaps are eliminated, pairs of overlapping windows will share either the same horizontal or vertical line of opposing edges. For these two conditions, contraction ratios ( , ) are calculated as shown below:

The contraction ratio pair with the highest multiplication is then
selected in order to avoid over-contraction. Window coordinates for
that pair are then updated according to these new contraction ratios
and the algorithm proceeds for the remaining pairs of overlapping
windows. The pseudo-code algorithm of the `Bubble` function is listed
in Appendix .

Sun Sep 13 18:34:46 EDT 1998