[−][src]Struct input::DeviceGroup
Device group
Some physical devices like graphics tablets are represented by
multiple kernel devices and thus by multiple Device
s.
libinput assigns these devices to the same DeviceGroup
allowing
the caller to identify such devices and adjust configuration
settings accordingly. For example, setting a tablet to left-handed
often means turning it upside down. A touch device on the same
tablet would need to be turned upside down too to work correctly.
All devices are part of a device group though for most devices the
group will be a singleton. A device is assigned to a device group
on DeviceAddedEvent
and removed from that group on
DeviceRemovedEvent
. It is up to the caller to track how many
devices are in each device group.
Device groups do not get re-used once the last device in the group was removed, i.e. unplugging and re-plugging a physical device with grouped devices will return a different device group after every unplug.
Device groups are assigned based on the LIBINPUT_DEVICE_GROUP udev property, see Static device configuration via udev.
Trait Implementations
impl AsRaw<libinput_device_group> for DeviceGroup
[src]
fn as_raw(&self) -> *const libinput_device_group
[src]
impl Clone for DeviceGroup
[src]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Context for DeviceGroup
[src]
impl Debug for DeviceGroup
[src]
impl Drop for DeviceGroup
[src]
impl Eq for DeviceGroup
[src]
impl FromRaw<libinput_device_group> for DeviceGroup
[src]
unsafe fn from_raw(ffi: *mut libinput_device_group, context: &Libinput) -> Self
[src]
impl Hash for DeviceGroup
[src]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl PartialEq<DeviceGroup> for DeviceGroup
[src]
impl StructuralEq for DeviceGroup
[src]
Auto Trait Implementations
impl !RefUnwindSafe for DeviceGroup
impl !Send for DeviceGroup
impl !Sync for DeviceGroup
impl Unpin for DeviceGroup
impl !UnwindSafe for DeviceGroup
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,