pub struct Watcher {
queue: EventQueue<State>,
state: State,
clipboard: ClipboardType,
watched: WlSeat,
cancel_read: PipeReader,
cancel_write: Arc<PipeWriter>,
}Expand description
Watches the clipboard for selection changes.
Construct one with Watcher::new, then drive it by calling Watcher::next_event in a
loop. The first call reports the current selection state; subsequent calls block until the
selection changes again.
Seats are resolved when the watcher starts, so passing Seat::Unspecified will use the
first seat found on construction rather than re-enumerating seats as offers come in.
Fields§
§queue: EventQueue<State>§state: State§clipboard: ClipboardType§watched: WlSeat§cancel_read: PipeReader§cancel_write: Arc<PipeWriter>Implementations§
Source§impl Watcher
impl Watcher
Sourcepub fn new(clipboard: ClipboardType, seat: Seat<'_>) -> Result<Self, Error>
pub fn new(clipboard: ClipboardType, seat: Seat<'_>) -> Result<Self, Error>
Starts watching the clipboard.
Returns an error immediately if there are no seats, the requested seat or protocol is missing, or primary selection was requested but is unsupported.
pub(crate) fn with_socket( clipboard: ClipboardType, seat: Seat<'_>, socket_name: Option<OsString>, ) -> Result<Self, Error>
Sourcepub fn cancel_handle(&self) -> CancelHandle
pub fn cancel_handle(&self) -> CancelHandle
Returns a handle that stops this watcher when CancelHandle::cancel is called.
The handle can be cloned and sent to another thread to interrupt a Watcher::next_event
call that is blocked waiting for the next selection change.
Sourcepub fn next_event<'a>(&'a mut self) -> Result<Option<ClipboardEvent<'a>>, Error>
pub fn next_event<'a>(&'a mut self) -> Result<Option<ClipboardEvent<'a>>, Error>
Blocks until the next selection event for the watched clipboard and seat.
On success yields the ClipboardEvent and an Offer to read its contents from.
Returns Ok(None) if cancelled via CancelHandle::cancel, or Err on a Wayland
communication failure.
fn front_matches(&mut self) -> bool
fn take_front_event<'a>(&'a mut self) -> ClipboardEvent<'a>
fn wait(&mut self) -> Result<bool, Error>
Auto Trait Implementations§
impl Freeze for Watcher
impl !RefUnwindSafe for Watcher
impl Send for Watcher
impl Sync for Watcher
impl Unpin for Watcher
impl UnsafeUnpin for Watcher
impl !UnwindSafe for Watcher
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.