Boolean action informs current value, edge, time and activity. Here's how to avoid repeated clicks and ghost commands across devices.
Direct answer
OpenXR's `XrActionStateBoolean` structure returns four complementary signals: current state, change since last sync, time of last change, and whether the action is active. Combining `changedSinceLastSync` with `currentState` identifies press and release edges, while `isActive` tells you whether a source is linked and available. The pattern avoids treating a held button as multiple clicks and helps disable commands when control, hand, or interaction profile is no longer valid.
Maintained state is not new event
Performing an action every frame while the value remains true creates multiple commits. Use the rising edge for discrete commands.
Falling edge also has semantics
Releasing can end dragging, recording or gesture. The change time allows you to order and measure duration with the runtime clock.
Inactive does not equal false
An action may become unavailable because there is no source linked or the app has lost focus. The interface must differentiate absence of input from negative choice.
Action abstraction protects portability
Map intent, such as confirm or cancel, and let interaction profiles turn on the appropriate button, gesture, or control per device.
Nexus Reading
Center synchronization and action transitions, register relevant edges, and test loss of focus, controller switching, and reconnection without ghost commands.
FAQ
How to detect a single press?
Check `changedSinceLastSync` and `currentState` to be true after `xrSyncActions`.
What is lastChangeTime for?
It records at runtime when the state has changed, useful for duration and ordering.
What does fake isActive mean?
The action is not available from an active source at that time; It should not be interpreted simply as a loose button.
Essential guides to delve deeper into the decision
This editorial analysis was produced by Nexus from the official sources below, consulted on October 26, 2026. The text is original and interprets practical implications for companies.
- Khronos — XrActionStateBoolean: current state, change, time, activity and edge detection.
- Khronos — xrSyncActions: synchronization of action sets and time of updating input states.
Date reported by main source: OpenXR 1.1.65 consulted on October 26, 2026; technical pattern analysis.

