Я сделал так: завожу список сортировки, и рендерю исходя из него окна, и обновляю тоже, поэтому обновляються сперва те что самые ближние, и далее по мере заслонённости, тем самым, если мы выбрали какое-то окно, присваеваем его эллемент к глобале, и уже далее если эта переменная <> Null, просто у других окон даже не проверяем на выделение. Оптимально.

Важно только Оптимально реализовать сортировку списка, отвечающего за последовательность рендеров и обновлений.