Очень просто. В него передавались указатели типа <QWidget *>. И при добавлении автоматом цеплялись сигналы "MoveEvent".
И при перемещении каждого виджета он проходил по списку, получал геометрию окон и присматривал шальному, перемещающемуся окну, подходящую пару. Ну а далее простой расчёт на дальность (область прилипания) и резкий скачок к необходимой поверхности.
Дальше правда сложнее чуток
Так ещё список прицепленных виджетом имелся, дабы если потащил одного - вся прилепленная толпа попёрлась