#[non_exhaustive]pub enum Request<'a> {
Destroy,
GetLockSurface {
surface: WlSurface,
output: WlOutput,
},
UnlockAndDestroy,
}
staging
and client
only.Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Destroy
destroy the session lock
This informs the compositor that the lock object will no longer be used. Existing objects created through this interface remain valid.
After this request is made, lock surfaces created through this object should be destroyed by the client as they will no longer be used by the compositor.
It is a protocol error to make this request if the locked event was sent, the unlock_and_destroy request must be used instead.
This is a destructor, once sent this object cannot be used any longer.
GetLockSurface
create a lock surface for a given output
The client is expected to create lock surfaces for all outputs currently present and any new outputs as they are advertised. These won’t be displayed by the compositor unless the lock is successful and the locked event is sent.
Providing a wl_surface which already has a role or already has a buffer attached or committed is a protocol error, as is attaching/committing a buffer before the first ext_session_lock_surface_v1.configure event.
Attempting to create more than one lock surface for a given output is a duplicate_output protocol error.
UnlockAndDestroy
unlock the session, destroying the object
This request indicates that the session should be unlocked, for example because the user has entered their password and it has been verified by the client.
This request also informs the compositor that the lock object will no longer be used and should be destroyed. Existing objects created through this interface remain valid.
After this request is made, lock surfaces created through this object should be destroyed by the client as they will no longer be used by the compositor.
It is a protocol error to make this request if the locked event has not been sent. In that case, the lock object must be destroyed using the destroy request.
Note that a correct client that wishes to exit directly after unlocking the session must use the wl_display.sync request to ensure the server receives and processes the unlock_and_destroy request. Otherwise there is no guarantee that the server has unlocked the session due to the asynchronous nature of the Wayland protocol. For example, the server might terminate the client with a protocol error before it processes the unlock_and_destroy request.
This is a destructor, once sent this object cannot be used any longer.
Implementations§
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for Request<'a>
impl<'a> !RefUnwindSafe for Request<'a>
impl<'a> Send for Request<'a>
impl<'a> Sync for Request<'a>
impl<'a> Unpin for Request<'a>
impl<'a> !UnwindSafe for Request<'a>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.