Skip to main content

XdgSessionV1

Struct XdgSessionV1 

Source
pub struct XdgSessionV1 { /* private fields */ }
Expand description

A session for an application

A xdg_session_v1 object represents a session for an application. While the object exists, all surfaces which have been added to the session will have states stored by the compositor which can be reapplied at a later time. Two sessions cannot exist for the same identifier string.

States for surfaces added to a session are automatically updated by the compositor when they are changed.

See also the Event enum for this interface.

Implementations§

Source§

impl XdgSessionV1

Source

pub fn destroy(&self)

Destroy the session

Destroy a session object, preserving the current state but not continuing to make further updates if state changes occur. This makes the associated xdg_toplevel_session_v1 objects inert.

Source

pub fn remove(&self)

Remove the session

Remove the session, making it no longer available for restoration. A compositor should in response to this request remove the data related to this session from its storage.

Source

pub fn add_toplevel<U, D: 'static>( &self, toplevel: &XdgToplevel, name: String, qh: &QueueHandle<D>, udata: U, ) -> XdgToplevelSessionV1
where U: Dispatch<XdgToplevelSessionV1, D> + Send + Sync + 'static,

add a new surface to the session

Attempt to add a given surface to the session. The passed name is used to identify what window is being restored, and may be used to store window specific state within the session.

The name given to the toplevel must not correspond to any previously existing toplevel names in the session. If the name matches an already known toplevel name in the session, a ‘name_in_use’ protocol error will be raised.

The toplevel object must not be added more than once to any session created by the client, otherwise the ‘already_added’ protocol error will be raised.

This request will return a xdg_toplevel_session_v1 for later manipulation. As this resource is created from an empty initial state, compositors must not emit a xdg_toplevel_session_v1.restored event for resources created through this request.

The name string must be UTF-8 encoded. It is also limited by the maximum length of wayland messages (around 4KB). The ‘invalid_name’ protocol error will be raised if an invalid string is provided.

Source

pub fn restore_toplevel<U, D: 'static>( &self, toplevel: &XdgToplevel, name: String, qh: &QueueHandle<D>, udata: U, ) -> XdgToplevelSessionV1
where U: Dispatch<XdgToplevelSessionV1, D> + Send + Sync + 'static,

restore a surface state

Inform the compositor that the toplevel associated with the passed name should have its window management state restored.

If the toplevel name was previously granted to another xdg_toplevel, the ‘name_in_use’ protocol error will be raised.

The toplevel object must not be added more than once to any session created by the client, otherwise the ‘already_added’ protocol error will be raised.

This request must be called prior to the first commit on the associated wl_surface after creating the toplevel, otherwise an ‘already_mapped’ error is raised.

As part of the initial configure sequence, if the toplevel was successfully restored, a xdg_toplevel_session_v1.restored event is emitted. If the toplevel name was not known in the session, this request will be equivalent to the xdg_toplevel_session_v1.add_toplevel request, and no such event will be emitted. See the xdg_toplevel_session_v1.restored event for further details.

The name string must be UTF-8 encoded. It is also limited by the maximum length of wayland messages (around 4KB). The ‘invalid_name’ protocol error will be raised if an invalid string is provided.

Source

pub fn remove_toplevel(&self, name: String)

remove a surface from the session

Remove a specified surface from the session and render any related xdg_toplevel_session_v1 object inert. The compositor should remove any data related to the toplevel in the corresponding session from its internal storage.

The window is specified by its name in the session. The name string must be encoded in UTF-8, and it is limited in size by the maximum length of wayland messages (around 4KB).

Trait Implementations§

Source§

impl Borrow<ObjectId> for XdgSessionV1

Source§

fn borrow(&self) -> &ObjectId

Immutably borrows from an owned value. Read more
Source§

impl Clone for XdgSessionV1

Source§

fn clone(&self) -> XdgSessionV1

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for XdgSessionV1

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for XdgSessionV1

Source§

impl Hash for XdgSessionV1

Source§

fn hash<H: Hasher>(&self, state: &mut H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for XdgSessionV1

Source§

fn eq(&self, other: &XdgSessionV1) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl PartialEq<Weak<XdgSessionV1>> for XdgSessionV1

Source§

fn eq(&self, other: &Weak<XdgSessionV1>) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Proxy for XdgSessionV1

Source§

type Request<'request> = Request<'request>

The request enum for this interface
Source§

type Event = Event

The event enum for this interface
Source§

fn interface() -> &'static Interface

The interface description
Source§

fn id(&self) -> &ObjectId

The ID of this object
Source§

fn version(&self) -> u32

The version of this object
Source§

fn object_data(&self) -> Option<&Arc<dyn ObjectData>>

Access the raw data associated with this object. Read more
Source§

fn backend(&self) -> &WeakBackend

Access the backend associated with this object
Source§

fn from_id(conn: &Connection, id: ObjectId) -> Result<Self, InvalidId>

Create an object proxy from its ID Read more
Source§

fn inert(backend: WeakBackend) -> Self

Create an inert object proxy Read more
Source§

fn parse_event( conn: &Connection, msg: OwnedMessage<ObjectId>, ) -> Result<(Self, Self::Event), DispatchError>

Parse a event for this object Read more
Source§

fn write_request<'r, 'a: 'r, 'b: 'r>( &'a self, conn: &Connection, msg: Self::Request<'b>, ) -> Result<(Message<'r, ObjectId>, Option<(&'static Interface, u32)>), InvalidId>

Serialize a request for this object Read more
Source§

fn is_alive(&self) -> bool

Checks if the Wayland object associated with this proxy is still alive
Source§

fn data<U>(&self) -> Option<&U>
where U: Send + Sync + 'static,

Access the user-data associated with this object
Source§

fn send_request<'a>(&'a self, req: Self::Request<'a>) -> Result<(), InvalidId>

Send a request for this object. Read more
Source§

fn send_constructor<I>( &self, req: Self::Request<'_>, data: Arc<dyn ObjectData>, ) -> Result<I, InvalidId>
where I: Proxy,

Send a request for this object that creates another object. Read more
Source§

fn downgrade(&self) -> Weak<Self>

Creates a weak handle to this object Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.