Геометрия (Xt)
Правила X Toolkit о том, кто решает размер и положение виджета: потомок просит, родитель решает, а оболочка наверху, в свою очередь, спрашивает оконный менеджер.
Виджет в Xt не рисует себя где вздумается: положение и размер принадлежат родителю — составному (Composite) виджету с методом geometry_manager. Потомок просит изменение через XtMakeGeometryRequest и получает XtGeometryYes, XtGeometryNo или XtGeometryAlmost — «не так, но вот это можно», после чего принимает компромисс или отступает. Родитель через XtQueryGeometry узнаёт пожелания детей и размещает их с XtConfigureWidget. Подключение и отключение потомка (XtManageChild, XtUnmanageChild) вызывает change_managed и новую компоновку. Виджеты с ограничениями вроде XmForm добавляют потомкам собственные ресурсы-привязки.
Просьбы, которые родитель не может выполнить, поднимаются вверх звено за звеном до оболочки, которая превращает их в XConfigureWindow и WM_NORMAL_HINTS и ждёт вердикта оконного менеджера — возможно, отрицательного. Классическая ловушка: реализованная оболочка не растёт, пока не задан XtNallowShellResize, поэтому диалоги с динамическим содержимым обрезаются; вторая — виджеты, вечно отвечающие друг другу Almost. Для 1988 года механизм был амбициозным и объясняет, почему Motif-программы умели подстраиваться под размер окна раньше других тулкитов.