Struct wayland_protocols::ext::session_lock::v1::client::ext_session_lock_surface_v1::ExtSessionLockSurfaceV1
source · pub struct ExtSessionLockSurfaceV1 {
id: ObjectId,
version: u32,
data: Option<Arc<dyn ObjectData>>,
backend: WeakBackend,
}
Expand description
a surface displayed while the session is locked
The client may use lock surfaces to display a screensaver, render a dialog to enter a password and unlock the session, or however else it sees fit.
On binding this interface the compositor will immediately send the first configure event. After making the ack_configure request in response to this event the client should attach and commit the first buffer. Committing the surface before acking the first configure is a protocol error. Committing the surface with a null buffer at any time is a protocol error.
The compositor is free to handle keyboard/pointer focus for lock surfaces however it chooses. A reasonable way to do this would be to give the first lock surface created keyboard focus and change keyboard focus if the user clicks on other surfaces.
See also the Event enum for this interface.
Fields§
§id: ObjectId
§version: u32
§data: Option<Arc<dyn ObjectData>>
§backend: WeakBackend
Implementations§
source§impl ExtSessionLockSurfaceV1
impl ExtSessionLockSurfaceV1
sourcepub fn destroy(&self)
pub fn destroy(&self)
destroy the lock surface object
This informs the compositor that the lock surface object will no longer be used.
It is recommended for a lock client to destroy lock surfaces if their corresponding wl_output global is removed.
If a lock surface on an active output is destroyed before the ext_session_lock_v1.unlock_and_destroy event is sent, the compositor must fall back to rendering a solid color.
sourcepub fn ack_configure(&self, serial: u32)
pub fn ack_configure(&self, serial: u32)
ack a configure event
When a configure event is received, if a client commits the surface in response to the configure event, then the client must make an ack_configure request sometime before the commit request, passing along the serial of the configure event.
If the client receives multiple configure events before it can respond to one, it only has to ack the last configure event.
A client is not required to commit immediately after sending an ack_configure request - it may even ack_configure several times before its next surface commit.
A client may send multiple ack_configure requests before committing, but only the last request sent before a commit indicates which configure event the client really is responding to.
Sending an ack_configure request consumes the configure event referenced by the given serial, as well as all older configure events sent on this object.
It is a protocol error to issue multiple ack_configure requests referencing the same configure event or to issue an ack_configure request referencing a configure event older than the last configure event acked for a given lock surface.
Trait Implementations§
source§impl Borrow<ObjectId> for ExtSessionLockSurfaceV1
impl Borrow<ObjectId> for ExtSessionLockSurfaceV1
source§impl Clone for ExtSessionLockSurfaceV1
impl Clone for ExtSessionLockSurfaceV1
source§fn clone(&self) -> ExtSessionLockSurfaceV1
fn clone(&self) -> ExtSessionLockSurfaceV1
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ExtSessionLockSurfaceV1
impl Debug for ExtSessionLockSurfaceV1
source§impl Hash for ExtSessionLockSurfaceV1
impl Hash for ExtSessionLockSurfaceV1
source§impl PartialEq<Weak<ExtSessionLockSurfaceV1>> for ExtSessionLockSurfaceV1
impl PartialEq<Weak<ExtSessionLockSurfaceV1>> for ExtSessionLockSurfaceV1
source§impl PartialEq for ExtSessionLockSurfaceV1
impl PartialEq for ExtSessionLockSurfaceV1
source§fn eq(&self, other: &ExtSessionLockSurfaceV1) -> bool
fn eq(&self, other: &ExtSessionLockSurfaceV1) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl Proxy for ExtSessionLockSurfaceV1
impl Proxy for ExtSessionLockSurfaceV1
source§fn data<U: Send + Sync + 'static>(&self) -> Option<&U>
fn data<U: Send + Sync + 'static>(&self) -> Option<&U>
source§fn object_data(&self) -> Option<&Arc<dyn ObjectData>>
fn object_data(&self) -> Option<&Arc<dyn ObjectData>>
source§fn backend(&self) -> &WeakBackend
fn backend(&self) -> &WeakBackend
source§fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>
fn send_request(&self, req: Self::Request<'_>) -> Result<(), InvalidId>
source§fn send_constructor<I: Proxy>(
&self,
req: Self::Request<'_>,
data: Arc<dyn ObjectData>,
) -> Result<I, InvalidId>
fn send_constructor<I: Proxy>( &self, req: Self::Request<'_>, data: Arc<dyn ObjectData>, ) -> Result<I, InvalidId>
source§fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>
fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>
source§fn inert(backend: WeakBackend) -> Self
fn inert(backend: WeakBackend) -> Self
source§fn parse_event(
conn: &Connection,
msg: Message<ObjectId, OwnedFd>,
) -> Result<(Self, Self::Event), DispatchError>
fn parse_event( conn: &Connection, msg: Message<ObjectId, OwnedFd>, ) -> Result<(Self, Self::Event), DispatchError>
source§fn write_request<'a>(
&self,
conn: &Connection,
msg: Self::Request<'a>,
) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>
fn write_request<'a>( &self, conn: &Connection, msg: Self::Request<'a>, ) -> Result<(Message<ObjectId, BorrowedFd<'a>>, Option<(&'static Interface, u32)>), InvalidId>
impl Eq for ExtSessionLockSurfaceV1
Auto Trait Implementations§
impl Freeze for ExtSessionLockSurfaceV1
impl !RefUnwindSafe for ExtSessionLockSurfaceV1
impl Send for ExtSessionLockSurfaceV1
impl Sync for ExtSessionLockSurfaceV1
impl Unpin for ExtSessionLockSurfaceV1
impl !UnwindSafe for ExtSessionLockSurfaceV1
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.