diff --git a/src/xrt/state_trackers/oxr/oxr_session.c b/src/xrt/state_trackers/oxr/oxr_session.c index 6e8ebbef3..c1d8f8c0c 100644 --- a/src/xrt/state_trackers/oxr/oxr_session.c +++ b/src/xrt/state_trackers/oxr/oxr_session.c @@ -261,6 +261,14 @@ oxr_session_poll(struct oxr_logger *log, struct oxr_session *sess) if (sess->state == XR_SESSION_STATE_VISIBLE && sess->compositor_focused) { oxr_session_change_state(log, sess, XR_SESSION_STATE_FOCUSED); } + + if (sess->state == XR_SESSION_STATE_FOCUSED && !sess->compositor_focused) { + oxr_session_change_state(log, sess, XR_SESSION_STATE_VISIBLE); + } + + if (sess->state == XR_SESSION_STATE_VISIBLE && !sess->compositor_visible) { + oxr_session_change_state(log, sess, XR_SESSION_STATE_SYNCHRONIZED); + } } static inline XrViewStateFlags