Google is committed to advancing racial equity for Black communities. See how.

fuchsia.ui.focus

PROTOCOLS

FocusChainListener

Defined in fuchsia.ui.focus/focus_chain.fidl

A FocusChainListener receives an updated FocusChain when focus changes.

OnFocusChange

Sent when a focus change occurs. Since focus_chain may contain an empty update, every handler MUST respond to the message even if its contents are not immediately useful.

Request

NameType
focus_chain FocusChain

Response

NameType

FocusChainListenerRegistry

Defined in fuchsia.ui.focus/focus_chain.fidl

A FocusChainListenerRegistry allows listening to FocusChain updates.

Register

Request

NameType
listener FocusChainListener

STRUCTS

TABLES

FocusChain resource

Defined in fuchsia.ui.focus/focus_chain.fidl

A FocusChain tracks the status of the View hierarchy as View focus changes.

Reception. Only certain components may receive a FocusChain, as it captures global information about the scene graph.

OrdinalNameTypeDescription
1 focus_chain vector<fuchsia.ui.views/ViewRef>

The focus_chain is reported in order of dominance in the View hierarchy; each adjacent pair of elements represents a parent-child relationship.

The focus_chain MAY be unset when FocusChain message is received, if the message is sent very early in the scene setup, before the first view is available.

When focus_chain is set, however, the root View is always present and occupies slot 0 in the focus_chain. The newly-focused View receives a fuchsia.ui.input.FocusEvent and occupies the final slot in the vector.

If a View gets destroyed, a FocusChain holder that listens will receive a ZX_EVENTPAIR_PEER_CLOSED signal on the corresponding ViewRef.

Invalidation.

A FocusChain is invalid if any one if its ViewRefs is invalid.