XmProtocols (Motif)
Надстройка Motif над WM_PROTOCOLS из ICCCM, превращающая сообщения оконного менеджера в обычные callback'и, — и причина, по которой столько программ на Motif умирало от щелчка по кнопке закрытия.
В чистом Xlib приложение само выставляет WM_PROTOCOLS и разбирает события ClientMessage. Motif это завернул: XmAddWMProtocolCallback(shell, XmInternAtom(dpy, "WM_DELETE_WINDOW", False), on_close, data) регистрирует протокол и привязывает функцию. Но ресурс оболочки XmNdeleteResponse действовал и сам по себе, а значение по умолчанию, XmDESTROY, уничтожало окно независимо от мнения callback'а. Программа оставалась без главного окна или падала. Лекарство — выставить XmDO_NOTHING и обрабатывать закрытие самому.
Тот же механизм нёс собственное расширение Motif, _MOTIF_WM_MESSAGES. Приложение могло добавлять пункты в оконное меню mwm через ресурс XmNmwmMenu, а когда пользователь выбирал один из них, mwm присылал сообщение обратно через f.send_msg. Пользовались этим немногие, и почти ни один другой оконный менеджер этого не понимал.