Оконная система поставила в тупик. Как она определяет регионы корневого фрейма документа при наложении двух и более окон?

То есть, у нас есть документ, открытый в окне (это основа документо-ориентированного интерфейса ББ). К окну всегда привязан Корневой Фрейм, для которого вычисляется область обновления. То есть, документ будет обновляться не целиком, а только в нужной области, при необходимости. Область обновления аппроксимирует сразу несколько участков (см. прикреплённый рисунок, границы области показаны зелёной рамкой), которые хранятся в массиве window.frame.update.

Области добавляются сразу же, как только наше окно было накрыто другим. Но как наше окно понимает, что надо взять размеры чужого окна?