---
name: "XmDeactivateProtocol"
section: "3"
platform: "linux"
package: "openmotif"
version: "2.3.8-4"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/XmDeactivateProtocol"
---

# XmDeactivateProtocol(3)

A VendorShell function that deactivates a protocol without removing it

## 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

**XmDeactivateProtocol** deactivates a protocol without removing it. It updates the handlers and the *property* if the *shell* is realized. It is sometimes useful to allow a protocol's state information (callback lists, and so on) to persist, even though the client may choose to temporarily resign from the interaction. The main use of this capability is to gray/ungray **f.send\_msg** entries in the MWM system menu. To support this capability, *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, **Atom** is not present in the *property*.

**XmDeactivateWMProtocol** is a convenience interface. It calls **XmDeactivateProtocol** with the property value set to the atom returned by interning **WM\_PROTOCOLS**.

- *shell*

  Specifies the widget with which the protocol property is associated

- *property*

  Specifies the protocol property

- *protocol*

  Specifies the protocol atom

For a complete definition of VendorShell and its associated resources, see [**VendorShell**(3)](/VendorShell/3.md).

## RELATED

[**mwm**(1)](/mwm/1.md), [**VendorShell**(3)](/VendorShell/3.md), [**XmActivateProtocol**(3)](/XmActivateProtocol/3.md), [**XmDeactivateWMProtocol**(3)](/XmDeactivateWMProtocol/3.md), and [**XmInternAtom**(3)](/XmInternAtom/3.md).
