anvil: use smithay's global SerialCounter
This commit is contained in:
parent
139d0f3992
commit
8b66680097
|
@ -17,7 +17,10 @@ use smithay::{
|
||||||
self, Event, InputBackend, InputHandler, KeyState, KeyboardKeyEvent, PointerAxisEvent,
|
self, Event, InputBackend, InputHandler, KeyState, KeyboardKeyEvent, PointerAxisEvent,
|
||||||
PointerButtonEvent, PointerMotionAbsoluteEvent, PointerMotionEvent,
|
PointerButtonEvent, PointerMotionAbsoluteEvent, PointerMotionEvent,
|
||||||
},
|
},
|
||||||
wayland::seat::{keysyms as xkb, AxisFrame, KeyboardHandle, Keysym, ModifiersState, PointerHandle},
|
wayland::{
|
||||||
|
seat::{keysyms as xkb, AxisFrame, KeyboardHandle, Keysym, ModifiersState, PointerHandle},
|
||||||
|
SERIAL_COUNTER as SCOUNTER,
|
||||||
|
},
|
||||||
wayland_server::protocol::wl_pointer,
|
wayland_server::protocol::wl_pointer,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -30,7 +33,6 @@ pub struct AnvilInputHandler {
|
||||||
window_map: Rc<RefCell<MyWindowMap>>,
|
window_map: Rc<RefCell<MyWindowMap>>,
|
||||||
pointer_location: Rc<RefCell<(f64, f64)>>,
|
pointer_location: Rc<RefCell<(f64, f64)>>,
|
||||||
screen_size: (u32, u32),
|
screen_size: (u32, u32),
|
||||||
serial: u32,
|
|
||||||
#[cfg(feature = "udev")]
|
#[cfg(feature = "udev")]
|
||||||
session: Option<AutoSession>,
|
session: Option<AutoSession>,
|
||||||
running: Arc<AtomicBool>,
|
running: Arc<AtomicBool>,
|
||||||
|
@ -54,7 +56,6 @@ impl AnvilInputHandler {
|
||||||
screen_size,
|
screen_size,
|
||||||
running,
|
running,
|
||||||
pointer_location,
|
pointer_location,
|
||||||
serial: 1,
|
|
||||||
#[cfg(feature = "udev")]
|
#[cfg(feature = "udev")]
|
||||||
session: None,
|
session: None,
|
||||||
}
|
}
|
||||||
|
@ -79,15 +80,9 @@ impl AnvilInputHandler {
|
||||||
screen_size,
|
screen_size,
|
||||||
running,
|
running,
|
||||||
pointer_location,
|
pointer_location,
|
||||||
serial: 1,
|
|
||||||
session: Some(session),
|
session: Some(session),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn next_serial(&mut self) -> u32 {
|
|
||||||
self.serial += 1;
|
|
||||||
self.serial
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<B: InputBackend> InputHandler<B> for AnvilInputHandler {
|
impl<B: InputBackend> InputHandler<B> for AnvilInputHandler {
|
||||||
|
@ -107,7 +102,7 @@ impl<B: InputBackend> InputHandler<B> for AnvilInputHandler {
|
||||||
let keycode = evt.key_code();
|
let keycode = evt.key_code();
|
||||||
let state = evt.state();
|
let state = evt.state();
|
||||||
debug!(self.log, "key"; "keycode" => keycode, "state" => format!("{:?}", state));
|
debug!(self.log, "key"; "keycode" => keycode, "state" => format!("{:?}", state));
|
||||||
let serial = self.next_serial();
|
let serial = SCOUNTER.next_serial();
|
||||||
let log = &self.log;
|
let log = &self.log;
|
||||||
let time = Event::time(&evt);
|
let time = Event::time(&evt);
|
||||||
let mut action = KeyAction::None;
|
let mut action = KeyAction::None;
|
||||||
|
@ -159,7 +154,7 @@ impl<B: InputBackend> InputHandler<B> for AnvilInputHandler {
|
||||||
|
|
||||||
fn on_pointer_move(&mut self, _: &input::Seat, evt: B::PointerMotionEvent) {
|
fn on_pointer_move(&mut self, _: &input::Seat, evt: B::PointerMotionEvent) {
|
||||||
let (x, y) = (evt.delta_x(), evt.delta_y());
|
let (x, y) = (evt.delta_x(), evt.delta_y());
|
||||||
let serial = self.next_serial();
|
let serial = SCOUNTER.next_serial();
|
||||||
let mut location = self.pointer_location.borrow_mut();
|
let mut location = self.pointer_location.borrow_mut();
|
||||||
location.0 += x as f64;
|
location.0 += x as f64;
|
||||||
location.1 += y as f64;
|
location.1 += y as f64;
|
||||||
|
@ -194,13 +189,13 @@ impl<B: InputBackend> InputHandler<B> for AnvilInputHandler {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
*self.pointer_location.borrow_mut() = (x, y);
|
*self.pointer_location.borrow_mut() = (x, y);
|
||||||
let serial = self.next_serial();
|
let serial = SCOUNTER.next_serial();
|
||||||
let under = self.window_map.borrow().get_surface_under((x as f64, y as f64));
|
let under = self.window_map.borrow().get_surface_under((x as f64, y as f64));
|
||||||
self.pointer.motion((x, y), under, serial, evt.time());
|
self.pointer.motion((x, y), under, serial, evt.time());
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_pointer_button(&mut self, _: &input::Seat, evt: B::PointerButtonEvent) {
|
fn on_pointer_button(&mut self, _: &input::Seat, evt: B::PointerButtonEvent) {
|
||||||
let serial = self.next_serial();
|
let serial = SCOUNTER.next_serial();
|
||||||
let button = match evt.button() {
|
let button = match evt.button() {
|
||||||
input::MouseButton::Left => 0x110,
|
input::MouseButton::Left => 0x110,
|
||||||
input::MouseButton::Right => 0x111,
|
input::MouseButton::Right => 0x111,
|
||||||
|
|
Loading…
Reference in New Issue