А не подскажешь, где подробнее глянуть как это вообще происходит?
В идеале прям в коде движка куда смотреть.
Моё предположение было, что при прохождении древа виджетов набивается стэк который первый вошел - последний вышел. И по нему потом пузыриться.
Могу понять, что в целом переписать саму систему - бобо оптимизации станет. Но предполагаю, что там всё на интерфейсах и можно создать некоторый контейнер, в котором переопределить то, как проходить по детям?
Но это всё чисто догадки которые стоят ровно ничего без понимания, как именно это все проходится.
FSlateApplication::ProcessMouseButtonDownEvent. вот там точка входа в обработку мыши и пробег по виджетам, в частности GetCaptorPath