Транзиентность / Модальность
Транзиентность
Приложения не мыслимы без модальных диалогов. Для их реализации окно имеет метод:
void set_transient_for(std::shared_ptr<window> window_, bool docked = true);
Этим методом родительскому окно указывается что некое окно нужно сделать модальным относительно него. Флаг docked указывает что модальное окно должно отображаться в базовом без создания физического системного окна. Если модальное окно больше родительского, этот флаг игнорируется и создается новое системное окно.
Строго говоря, модальности в привычном смысле WinAPI в библиотеке нет. Т. е. вызов init() транзиентного окна не блокирует вызывающий код, но это обходится продолжением логики в коллбэке close_callback передаваемом в init(). Как показала практика, с этим вполне можно жить, а для некоторых вещей это даже оказывается удобнее.