pub struct WlFixes { /* private fields */ }Expand description
wayland protocol fixes
This global fixes problems with other core-protocol interfaces that cannot be fixed in these interfaces themselves.
This interface has no events.
Implementations§
Source§impl WlFixes
impl WlFixes
Sourcepub fn destroy_registry(&self, registry: &WlRegistry)
pub fn destroy_registry(&self, registry: &WlRegistry)
destroy a wl_registry
This request destroys a wl_registry object.
The client should no longer use the wl_registry after making this request.
The compositor will emit a wl_display.delete_id event with the object ID of the registry and will no longer emit any events on the registry. The client should re-use the object ID once it receives the wl_display.delete_id event.
Sourcepub fn ack_global_remove(&self, registry: &WlRegistry, name: u32)
pub fn ack_global_remove(&self, registry: &WlRegistry, name: u32)
acknowledge global removal
Acknowledge the removal of the specified global.
If no global with the specified name exists or the global is not removed, the wl_fixes.invalid_ack_remove protocol error will be posted.
Due to the Wayland protocol being asynchronous, the wl_global objects cannot be destroyed immediately. For example, if a wl_global is removed and a client attempts to bind that global around same time, it can result in a protocol error due to an unknown global name in the bind request.
In order to avoid crashing clients, the compositor should remove the wl_global once it is guaranteed that no more bind requests will come.
The wl_fixes.ack_global_remove() request is used to signal to the compositor that the client will not bind the given global anymore. After all clients acknowledge the removal of the global, the compositor can safely destroy it.
The client must call the wl_fixes.ack_global_remove() request in response to a wl_registry.global_remove() event even if it did not bind the corresponding global.