In the bubble algorithm each window is associated with two additional attributes:
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 .