Enum PointerOwner
pub enum PointerOwner {
Window,
Desktop,
OtherSurface,
}Expand description
Which layer paints a peer’s pointer — a screen position, so only one layer may place it correctly (an app painting a desktop coordinate into its own window space is right only at the origin). The compositor owns desktop-scoped pointers, since it alone spans the strip, chrome and gaps between windows continuously; an app owns presence inside its own content (caret, selection, typing swipe), since the compositor has no access to the text.
Variants§
Window
No desktop scope, so no compositor overlay claims it: the SDK/relay dialect, shot fixtures, and the hosted backend’s interpolated cursors.
Desktop
The compositor overlay paints it, from PresenceCtx::pointers. Still
kept here so “follow that peer” can read it via PresenceCtx::peer_pointer.
OtherSurface
In some other surface’s content coordinates — the frame arrived (the broker fans presence to every app in the room) but is not this process’s to place. Makes the fan-out safe: exactly one of N apps answers “mine”, the rest land here without consulting each other.
Trait Implementations§
§impl Clone for PointerOwner
impl Clone for PointerOwner
§fn clone(&self) -> PointerOwner
fn clone(&self) -> PointerOwner
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PointerOwner
impl Debug for PointerOwner
§impl Default for PointerOwner
impl Default for PointerOwner
§fn default() -> PointerOwner
fn default() -> PointerOwner
§impl PartialEq for PointerOwner
impl PartialEq for PointerOwner
impl Copy for PointerOwner
impl Eq for PointerOwner
impl StructuralPartialEq for PointerOwner
Auto Trait Implementations§
impl Freeze for PointerOwner
impl RefUnwindSafe for PointerOwner
impl Send for PointerOwner
impl Sync for PointerOwner
impl Unpin for PointerOwner
impl UnsafeUnpin for PointerOwner
impl UnwindSafe for PointerOwner
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§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.§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.§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.§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.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more