Struct PointerInnerHandle

Source
pub struct PointerInnerHandle<'a, D: SeatHandler> { /* private fields */ }
Expand description

This inner handle is accessed from inside a pointer grab logic, and directly sends event to the client

Implementations§

Source§

impl<D: SeatHandler + 'static> PointerInnerHandle<'_, D>

Source

pub fn set_grab<G: PointerGrab<D> + 'static>( &mut self, handler: &mut dyn PointerGrab<D>, data: &mut D, serial: Serial, focus: Focus, grab: G, )

Change the current grab on this pointer to the provided grab

Overwrites any current grab.

Source

pub fn unset_grab( &mut self, handler: &mut dyn PointerGrab<D>, data: &mut D, serial: Serial, time: u32, restore_focus: bool, )

Remove any current grab on this pointer, resetting it to the default behavior

This will also restore the focus of the underlying pointer if restore_focus is true

Source

pub fn current_focus( &self, ) -> Option<(<D as SeatHandler>::PointerFocus, Point<f64, Logical>)>

Access the current focus of this pointer

Source

pub fn current_location(&self) -> Point<f64, Logical>

Access the current location of this pointer in the global space

Source

pub fn current_pressed(&self) -> &[u32]

A list of the currently physically pressed buttons

This still includes buttons that your grab have intercepted and not sent to the client.

Source

pub fn motion( &mut self, data: &mut D, focus: Option<(<D as SeatHandler>::PointerFocus, Point<f64, Logical>)>, event: &MotionEvent, )

Notify that the pointer moved

You provide the new location of the pointer, in the form of:

  • The coordinates of the pointer in the global compositor space
  • The surface on top of which the cursor is, and the coordinates of its origin in the global compositor space (or None of the pointer is not on top of a client surface).

This will internally take care of notifying the appropriate client objects of enter/motion/leave events.

Source

pub fn relative_motion( &mut self, data: &mut D, focus: Option<(<D as SeatHandler>::PointerFocus, Point<f64, Logical>)>, event: &RelativeMotionEvent, )

Notify about relative pointer motion

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the relative pointer protocol.

Source

pub fn button(&mut self, data: &mut D, event: &ButtonEvent)

Notify that a button was pressed

This will internally send the appropriate button event to the client objects matching with the currently focused surface.

Source

pub fn axis(&mut self, data: &mut D, details: AxisFrame)

Notify that an axis was scrolled

This will internally send the appropriate axis events to the client objects matching with the currently focused surface.

Source

pub fn frame(&mut self, data: &mut D)

End of a pointer frame

This will internally send the appropriate frame event to the client objects matching with the currently focused surface.

Source

pub fn gesture_swipe_begin( &mut self, data: &mut D, event: &GestureSwipeBeginEvent, )

Notify about swipe gesture begin

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_swipe_update( &mut self, data: &mut D, event: &GestureSwipeUpdateEvent, )

Notify about swipe gesture update

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_swipe_end(&mut self, data: &mut D, event: &GestureSwipeEndEvent)

Notify about swipe gesture end

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_pinch_begin( &mut self, data: &mut D, event: &GesturePinchBeginEvent, )

Notify about pinch gesture begin

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_pinch_update( &mut self, data: &mut D, event: &GesturePinchUpdateEvent, )

Notify about pinch gesture update

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_pinch_end(&mut self, data: &mut D, event: &GesturePinchEndEvent)

Notify about pinch gesture end

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_hold_begin( &mut self, data: &mut D, event: &GestureHoldBeginEvent, )

Notify about hold gesture begin

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Source

pub fn gesture_hold_end(&mut self, data: &mut D, event: &GestureHoldEndEvent)

Notify about hold gesture end

This will internally send the appropriate button event to the client objects matching with the currently focused surface, if the client uses the pointer gestures protocol.

Trait Implementations§

Source§

impl<D: SeatHandler> Debug for PointerInnerHandle<'_, D>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, D> Freeze for PointerInnerHandle<'a, D>

§

impl<'a, D> !RefUnwindSafe for PointerInnerHandle<'a, D>

§

impl<'a, D> Send for PointerInnerHandle<'a, D>

§

impl<'a, D> !Sync for PointerInnerHandle<'a, D>

§

impl<'a, D> Unpin for PointerInnerHandle<'a, D>

§

impl<'a, D> !UnwindSafe for PointerInnerHandle<'a, D>

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> Same for T

Source§

type Output = T

Should always be Self
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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more