pub trait GlobalDispatch<I: Resource, GlobalData, State = Self>: Sized {
    fn bind(
        state: &mut State,
        handle: &DisplayHandle,
        client: &Client,
        resource: New<I>,
        global_data: &GlobalData,
        data_init: &mut DataInit<'_, State>
    ); fn can_view(_client: Client, _global_data: &GlobalData) -> bool { ... } }
Expand description

A trait which provides an implementation for handling advertisement of a global to clients with some type of associated user data.

Its behavior is similar to the Dispatch trait.

Required Methods

Called when a client has bound this global.

The return value of this function should contain user data to associate the object created by the client.

Provided Methods

Checks if the global should be advertised to some client.

The implementation of this function determines whether a client may see and bind some global. If this function returns false, the client will not be told the global exists and attempts to bind the global will raise a protocol error.

One use of this function is implementing privileged protocols such as XWayland keyboard grabbing which must only be used by XWayland.

The default implementation allows all clients to see the global.