XMDEACTIVATEPROTOCOL(3)

πŸ“¦
version 2.5.2 Β· 2 versions
, in alpine 3.24, arch rolling, centos-stream 9, epel 10, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, opensuse-leap 16.0

πŸ’… XmDeactivateProtocol πŸ’…

okay bestie, welcome to the XmDeactivateProtocol page from the library-call section of the manual. she's a VendorShell function and she's about to ghost a protocol β€” but like, soft-ghost. not a block. just a lil' "not right now" ✨


🌸 NAME 🌸

XmDeactivateProtocol β€” a VendorShell function that deactivates a protocol without removing it πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

#include <Xm/Xm.h>
#include <Xm/Protocols.h>
void XmDeactivateProtocol(
Widget shell,
Atom property,
Atom protocol);

✨ DESCRIPTION ✨

so XmDeactivateProtocol deactivates a protocol without removing it. she does not delete it, she does not throw it away, she just sets it to inactive, iykyk. πŸ’…

she updates the handlers and the property if the shell is realized. (realized shell = we're doing this for real, not just vibing in theory 🫢)

the way that this is useful: sometimes you wanna let a protocol's state information keep existing β€” callback lists, and so on, all of it β€” even though the client may choose to temporarily resign from the interaction. it's giving "we're on a break, not broken up." 😭

the main use of this capability is to gray/ungray f.send_msg entries in the MWM system menu. πŸ‘‘

to support this, protocol is allowed to be in one of two states: active or inactive.

  • if protocol is active and shell is realized, property contains the protocol Atom. βœ…
  • if protocol is inactive, the Atom is not present in the property. 🚫

alsooo, XmDeactivateWMProtocol is a convenience interface. she's the low-effort bestie who just calls XmDeactivateProtocol with the property value set to the atom returned by interning WM_PROTOCOLS. no cap, that's literally all she does. πŸ’–


πŸŽ€ the arguments πŸŽ€

  • shell β€” specifies the widget with which the protocol property is associated. the main character of this whole situation. πŸ‘‘
  • property β€” specifies the protocol property. 🌈
  • protocol β€” specifies the protocol atom. ⭐

for a complete definition of VendorShell and its associated resources, see VendorShell(3). πŸ“–


go read these next, bestie, they're all connected fr fr:


and that's the whole vibe 🌸 this was the XmDeactivateProtocol page from the library-call manual β€” no date on this one, she's timeless like that πŸ’…βœ¨ mwah, go deactivate something responsibly πŸ«ΆπŸŽ€