Adjust InputBackend for libinput compatibility
- Make id be an `u64` to be able to populate it by a hash - Add internal interface to get a mutable capabilities reference from a `Seat`. - `InputConfig` type does not need to be `Sized` on `InputBackend`
This commit is contained in:
parent
5369cc2927
commit
7aca2edb13
|
@ -12,19 +12,24 @@ use std::error::Error;
|
||||||
/// separated users, all with their own focus, input and cursor available.
|
/// separated users, all with their own focus, input and cursor available.
|
||||||
///
|
///
|
||||||
/// Seats can be checked for equality and hashed for differentiation.
|
/// Seats can be checked for equality and hashed for differentiation.
|
||||||
|
// FIXME: Impl PartialEq, Eq and Hash only dependant on `id`.
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
|
||||||
pub struct Seat {
|
pub struct Seat {
|
||||||
id: u32,
|
id: u64,
|
||||||
capabilities: SeatCapabilities,
|
capabilities: SeatCapabilities,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl SeatInternal for Seat {
|
impl SeatInternal for Seat {
|
||||||
fn new(id: u32, capabilities: SeatCapabilities) -> Seat {
|
fn new(id: u64, capabilities: SeatCapabilities) -> Seat {
|
||||||
Seat {
|
Seat {
|
||||||
id: id,
|
id: id,
|
||||||
capabilities: capabilities,
|
capabilities: capabilities,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn capabilities_mut(&mut self) -> &mut SeatCapabilities {
|
||||||
|
&mut self.capabilities
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Seat {
|
impl Seat {
|
||||||
|
@ -182,7 +187,7 @@ pub enum TouchEvent {
|
||||||
/// given events.
|
/// given events.
|
||||||
pub trait InputBackend: Sized {
|
pub trait InputBackend: Sized {
|
||||||
/// Type of input device associated with the backend
|
/// Type of input device associated with the backend
|
||||||
type InputConfig;
|
type InputConfig: ?Sized;
|
||||||
|
|
||||||
/// Type representing errors that may be returned when processing events
|
/// Type representing errors that may be returned when processing events
|
||||||
type EventError: Error;
|
type EventError: Error;
|
||||||
|
|
|
@ -28,7 +28,8 @@ pub use glium::*;
|
||||||
/// Internal functions that need to be accessible by the different backend implementations
|
/// Internal functions that need to be accessible by the different backend implementations
|
||||||
|
|
||||||
trait SeatInternal {
|
trait SeatInternal {
|
||||||
fn new(id: u32, capabilities: input::SeatCapabilities) -> Self;
|
fn new(id: u64, capabilities: input::SeatCapabilities) -> Self;
|
||||||
|
fn capabilities_mut(&mut self) -> &mut input::SeatCapabilities;
|
||||||
}
|
}
|
||||||
|
|
||||||
trait TouchSlotInternal {
|
trait TouchSlotInternal {
|
||||||
|
|
Loading…
Reference in New Issue