IT-lexikon › Programmering › XmProtocols (Motif)

XmProtocols (Motif)

Programmering In English → Uppdaterad: 2026-10-11

Motifs lager ovanpå ICCCM:s WM_PROTOCOLS, som gjorde fönsterhanterarens meddelanden till vanliga callbacks — och som ligger bakom de flesta Motif-program som dog när man klickade på krysset.

I ren Xlib måste ett program själv sätta WM_PROTOCOLS och sortera ClientMessage-händelser. Motif kapslade in det: XmAddWMProtocolCallback(shell, XmInternAtom(dpy, "WM_DELETE_WINDOW", False), stäng, data) anmäler protokollet och kopplar en funktion till det. Men shellens resurs XmNdeleteResponse gjorde dessutom något på egen hand, och standardvärdet XmDESTROY förstörde fönstret oavsett vad callbacken tyckte. Programmet stod kvar utan huvudfönster eller kraschade. Botemedlet var att sätta XmDO_NOTHING och sköta stängningen själv.

Samma mekanism bar Motifs egen förlängning, _MOTIF_WM_MESSAGES. Ett program kunde lägga till rader i mwm:s fönstermeny via resursen XmNmwmMenu, och när användaren valde dem skickade mwm ett meddelande tillbaka med f.send_msg. Få använde det, och nästan inga andra fönsterhanterare förstod det.

← Tillbaka till lexikonet