Leksykon IT › Programowanie › XmProtocols (Motif)

XmProtocols (Motif)

Programowanie Svenska → Zaktualizowano: 2026-10-11

Warstwa Motif nad WM_PROTOCOLS z ICCCM, zamieniająca komunikaty menedżera okien w zwykłe callbacki — i powód, dla którego tyle programów Motif umierało po kliknięciu przycisku zamknięcia.

W czystym Xlib aplikacja sama ustawia WM_PROTOCOLS i przebiera w zdarzeniach ClientMessage. Motif to opakował: XmAddWMProtocolCallback(shell, XmInternAtom(dpy, "WM_DELETE_WINDOW", False), on_close, data) rejestruje protokół i podpina funkcję. Tyle że zasób XmNdeleteResponse powłoki działał także na własną rękę, a domyślne XmDESTROY niszczyło okno niezależnie od tego, co sądził callback. Program zostawał bez okna głównego albo się wysypywał. Lekarstwem było ustawienie XmDO_NOTHING i samodzielna obsługa zamykania.

Ten sam mechanizm niósł własne rozszerzenie Motif, _MOTIF_WM_MESSAGES. Aplikacja mogła dodawać pozycje do menu okna mwm przez zasób XmNmwmMenu, a gdy użytkownik którąś wybrał, mwm odsyłał komunikat przez f.send_msg. Niewiele programów z tego korzystało i prawie żaden inny menedżer okien tego nie rozumiał.

← Wróć do leksykonu