pub struct WlSubsurface { /* private fields */ }Expand description
A wl_subsurface object.
See the documentation of the module for the interface description.
Implementations§
Source§impl WlSubsurface
impl WlSubsurface
Sourcepub fn set_handler(&self, handler: impl WlSubsurfaceHandler)
pub fn set_handler(&self, handler: impl WlSubsurfaceHandler)
Sets a new handler.
Sourcepub fn set_boxed_handler(&self, handler: Box<dyn WlSubsurfaceHandler>)
pub fn set_boxed_handler(&self, handler: Box<dyn WlSubsurfaceHandler>)
Sets a new, already boxed handler.
Source§impl WlSubsurface
impl WlSubsurface
Sourcepub const MSG__DESTROY__SINCE: u32 = 1u32
pub const MSG__DESTROY__SINCE: u32 = 1u32
Since when the destroy message is available.
Sourcepub const MSG__SET_POSITION__SINCE: u32 = 1u32
pub const MSG__SET_POSITION__SINCE: u32 = 1u32
Since when the set_position message is available.
Sourcepub const MSG__PLACE_ABOVE__SINCE: u32 = 1u32
pub const MSG__PLACE_ABOVE__SINCE: u32 = 1u32
Since when the place_above message is available.
Sourcepub const MSG__PLACE_BELOW__SINCE: u32 = 1u32
pub const MSG__PLACE_BELOW__SINCE: u32 = 1u32
Since when the place_below message is available.
Sourcepub const MSG__SET_SYNC__SINCE: u32 = 1u32
pub const MSG__SET_SYNC__SINCE: u32 = 1u32
Since when the set_sync message is available.
Sourcepub const MSG__SET_DESYNC__SINCE: u32 = 1u32
pub const MSG__SET_DESYNC__SINCE: u32 = 1u32
Since when the set_desync message is available.
Sourcepub fn try_send_destroy(&self) -> Result<(), ObjectError>
pub fn try_send_destroy(&self) -> Result<(), ObjectError>
remove sub-surface interface
The sub-surface interface is removed from the wl_surface object that was turned into a sub-surface with a wl_subcompositor.get_subsurface request. The wl_surface’s association to the parent is deleted. The wl_surface is unmapped immediately.
Sourcepub fn send_destroy(&self)
pub fn send_destroy(&self)
remove sub-surface interface
The sub-surface interface is removed from the wl_surface object that was turned into a sub-surface with a wl_subcompositor.get_subsurface request. The wl_surface’s association to the parent is deleted. The wl_surface is unmapped immediately.
Sourcepub fn try_send_set_position(&self, x: i32, y: i32) -> Result<(), ObjectError>
pub fn try_send_set_position(&self, x: i32, y: i32) -> Result<(), ObjectError>
reposition the sub-surface
This schedules a sub-surface position change. The sub-surface will be moved so that its origin (top left corner pixel) will be at the location x, y of the parent surface coordinate system. The coordinates are not restricted to the parent surface area. Negative values are allowed.
The scheduled coordinates will take effect whenever the state of the parent surface is applied.
If more than one set_position request is invoked by the client before the commit of the parent surface, the position of a new request always replaces the scheduled position from any previous request.
The initial position is 0, 0.
§Arguments
x: x coordinate in the parent surfacey: y coordinate in the parent surface
Sourcepub fn send_set_position(&self, x: i32, y: i32)
pub fn send_set_position(&self, x: i32, y: i32)
reposition the sub-surface
This schedules a sub-surface position change. The sub-surface will be moved so that its origin (top left corner pixel) will be at the location x, y of the parent surface coordinate system. The coordinates are not restricted to the parent surface area. Negative values are allowed.
The scheduled coordinates will take effect whenever the state of the parent surface is applied.
If more than one set_position request is invoked by the client before the commit of the parent surface, the position of a new request always replaces the scheduled position from any previous request.
The initial position is 0, 0.
§Arguments
x: x coordinate in the parent surfacey: y coordinate in the parent surface
Sourcepub fn try_send_place_above(
&self,
sibling: &Rc<WlSurface>,
) -> Result<(), ObjectError>
pub fn try_send_place_above( &self, sibling: &Rc<WlSurface>, ) -> Result<(), ObjectError>
restack the sub-surface
This sub-surface is taken from the stack, and put back just above the reference surface, changing the z-order of the sub-surfaces. The reference surface must be one of the sibling surfaces, or the parent surface. Using any other surface, including this sub-surface, will cause a protocol error.
The z-order is double-buffered. Requests are handled in order and applied immediately to a pending state. The final pending state is copied to the active state the next time the state of the parent surface is applied.
A new sub-surface is initially added as the top-most in the stack of its siblings and parent.
§Arguments
sibling: the reference surface
Sourcepub fn send_place_above(&self, sibling: &Rc<WlSurface>)
pub fn send_place_above(&self, sibling: &Rc<WlSurface>)
restack the sub-surface
This sub-surface is taken from the stack, and put back just above the reference surface, changing the z-order of the sub-surfaces. The reference surface must be one of the sibling surfaces, or the parent surface. Using any other surface, including this sub-surface, will cause a protocol error.
The z-order is double-buffered. Requests are handled in order and applied immediately to a pending state. The final pending state is copied to the active state the next time the state of the parent surface is applied.
A new sub-surface is initially added as the top-most in the stack of its siblings and parent.
§Arguments
sibling: the reference surface
Sourcepub fn try_send_place_below(
&self,
sibling: &Rc<WlSurface>,
) -> Result<(), ObjectError>
pub fn try_send_place_below( &self, sibling: &Rc<WlSurface>, ) -> Result<(), ObjectError>
restack the sub-surface
The sub-surface is placed just below the reference surface. See wl_subsurface.place_above.
§Arguments
sibling: the reference surface
Sourcepub fn send_place_below(&self, sibling: &Rc<WlSurface>)
pub fn send_place_below(&self, sibling: &Rc<WlSurface>)
restack the sub-surface
The sub-surface is placed just below the reference surface. See wl_subsurface.place_above.
§Arguments
sibling: the reference surface
Sourcepub fn try_send_set_sync(&self) -> Result<(), ObjectError>
pub fn try_send_set_sync(&self) -> Result<(), ObjectError>
set sub-surface to synchronized mode
Change the commit behaviour of the sub-surface to synchronized mode, also described as the parent dependent mode.
In synchronized mode, wl_surface.commit on a sub-surface will accumulate the committed state in a cache, but the state will not be applied and hence will not change the compositor output. The cached state is applied to the sub-surface immediately after the parent surface’s state is applied. This ensures atomic updates of the parent and all its synchronized sub-surfaces. Applying the cached state will invalidate the cache, so further parent surface commits do not (re-)apply old state.
See wl_subsurface for the recursive effect of this mode.
Sourcepub fn send_set_sync(&self)
pub fn send_set_sync(&self)
set sub-surface to synchronized mode
Change the commit behaviour of the sub-surface to synchronized mode, also described as the parent dependent mode.
In synchronized mode, wl_surface.commit on a sub-surface will accumulate the committed state in a cache, but the state will not be applied and hence will not change the compositor output. The cached state is applied to the sub-surface immediately after the parent surface’s state is applied. This ensures atomic updates of the parent and all its synchronized sub-surfaces. Applying the cached state will invalidate the cache, so further parent surface commits do not (re-)apply old state.
See wl_subsurface for the recursive effect of this mode.
Sourcepub fn try_send_set_desync(&self) -> Result<(), ObjectError>
pub fn try_send_set_desync(&self) -> Result<(), ObjectError>
set sub-surface to desynchronized mode
Change the commit behaviour of the sub-surface to desynchronized mode, also described as independent or freely running mode.
In desynchronized mode, wl_surface.commit on a sub-surface will apply the pending state directly, without caching, as happens normally with a wl_surface. Calling wl_surface.commit on the parent surface has no effect on the sub-surface’s wl_surface state. This mode allows a sub-surface to be updated on its own.
If cached state exists when wl_surface.commit is called in desynchronized mode, the pending state is added to the cached state, and applied as a whole. This invalidates the cache.
Note: even if a sub-surface is set to desynchronized, a parent sub-surface may override it to behave as synchronized. For details, see wl_subsurface.
If a surface’s parent surface behaves as desynchronized, then the cached state is applied on set_desync.
Sourcepub fn send_set_desync(&self)
pub fn send_set_desync(&self)
set sub-surface to desynchronized mode
Change the commit behaviour of the sub-surface to desynchronized mode, also described as independent or freely running mode.
In desynchronized mode, wl_surface.commit on a sub-surface will apply the pending state directly, without caching, as happens normally with a wl_surface. Calling wl_surface.commit on the parent surface has no effect on the sub-surface’s wl_surface state. This mode allows a sub-surface to be updated on its own.
If cached state exists when wl_surface.commit is called in desynchronized mode, the pending state is added to the cached state, and applied as a whole. This invalidates the cache.
Note: even if a sub-surface is set to desynchronized, a parent sub-surface may override it to behave as synchronized. For details, see wl_subsurface.
If a surface’s parent surface behaves as desynchronized, then the cached state is applied on set_desync.
Source§impl WlSubsurface
impl WlSubsurface
Sourcepub const ENM__ERROR_BAD_SURFACE__SINCE: u32 = 1u32
pub const ENM__ERROR_BAD_SURFACE__SINCE: u32 = 1u32
Since when the error.bad_surface enum variant is available.
Trait Implementations§
Source§impl ConcreteObject for WlSubsurface
impl ConcreteObject for WlSubsurface
Source§const XML_VERSION: u32 = 1u32
const XML_VERSION: u32 = 1u32
Source§const INTERFACE: ObjectInterface = ObjectInterface::WlSubsurface
const INTERFACE: ObjectInterface = ObjectInterface::WlSubsurface
Source§const INTERFACE_NAME: &str = "wl_subsurface"
const INTERFACE_NAME: &str = "wl_subsurface"
Source§impl Debug for WlSubsurface
impl Debug for WlSubsurface
Source§impl Object for WlSubsurface
impl Object for WlSubsurface
Source§fn core(&self) -> &ObjectCore
fn core(&self) -> &ObjectCore
ObjectCore of this object.Source§fn unset_handler(&self)
fn unset_handler(&self)
Source§fn get_handler_any_ref(
&self,
) -> Result<HandlerRef<'_, dyn Any>, HandlerAccessError>
fn get_handler_any_ref( &self, ) -> Result<HandlerRef<'_, dyn Any>, HandlerAccessError>
Source§fn get_handler_any_mut(
&self,
) -> Result<HandlerMut<'_, dyn Any>, HandlerAccessError>
fn get_handler_any_mut( &self, ) -> Result<HandlerMut<'_, dyn Any>, HandlerAccessError>
Auto Trait Implementations§
impl !Freeze for WlSubsurface
impl !RefUnwindSafe for WlSubsurface
impl !Send for WlSubsurface
impl !Sync for WlSubsurface
impl Unpin for WlSubsurface
impl !UnwindSafe for WlSubsurface
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> ObjectCoreApi for T
impl<T> ObjectCoreApi for T
Source§fn client(&self) -> Option<Rc<Client>>
fn client(&self) -> Option<Rc<Client>>
Client associated with this object, if any.Source§fn interface(&self) -> ObjectInterface
fn interface(&self) -> ObjectInterface
ObjectInterface of this object.