diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-24 11:04:30 +0400 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2023-09-26 13:45:03 +0400 |
| commit | c422fdab0fd19f61ee5ad73a46312d4284641f3c (patch) | |
| tree | 46b676c5d81845bcebae397c330d41f2c0e8a099 /src/niri.rs | |
| parent | f58e56d65ab0c41facc72b75e8a85d64b54963ef (diff) | |
| download | niri-c422fdab0fd19f61ee5ad73a46312d4284641f3c.tar.gz niri-c422fdab0fd19f61ee5ad73a46312d4284641f3c.tar.bz2 niri-c422fdab0fd19f61ee5ad73a46312d4284641f3c.zip | |
Update Smithay
Diffstat (limited to 'src/niri.rs')
| -rw-r--r-- | src/niri.rs | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/src/niri.rs b/src/niri.rs index 35346bd7..762b062c 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1,7 +1,6 @@ use std::cell::RefCell; use std::cmp::max; use std::collections::HashMap; -use std::os::unix::io::AsRawFd; use std::path::PathBuf; use std::process::Command; use std::rc::Rc; @@ -142,7 +141,7 @@ impl State { config: Config, event_loop: LoopHandle<'static, LoopData>, stop_signal: LoopSignal, - display: &mut Display<State>, + display: Display<State>, ) -> Self { let config = Rc::new(RefCell::new(config)); @@ -163,7 +162,8 @@ impl State { pub fn move_cursor(&mut self, location: Point<f64, Logical>) { let under = self.niri.surface_under_and_global_space(location); - self.niri.seat.get_pointer().unwrap().motion( + let pointer = &self.niri.seat.get_pointer().unwrap(); + pointer.motion( self, under, &MotionEvent { @@ -172,6 +172,7 @@ impl State { time: get_monotonic_time().as_millis() as u32, }, ); + pointer.frame(self); // FIXME: granular self.niri.queue_redraw_all(); } @@ -202,7 +203,7 @@ impl Niri { config: Rc<RefCell<Config>>, event_loop: LoopHandle<'static, LoopData>, stop_signal: LoopSignal, - display: &mut Display<State>, + display: Display<State>, backend: &Backend, ) -> Self { let display_handle = display.handle(); @@ -533,14 +534,13 @@ impl Niri { zbus_conn = Some(conn); } - let display_source = Generic::new( - display.backend().poll_fd().as_raw_fd(), - Interest::READ, - Mode::Level, - ); + let display_source = Generic::new(display, Interest::READ, Mode::Level); event_loop - .insert_source(display_source, |_, _, data| { - data.display.dispatch_clients(&mut data.state).unwrap(); + .insert_source(display_source, |_, display, data| { + // SAFETY: we don't drop the display. + unsafe { + display.get_mut().dispatch_clients(&mut data.state).unwrap(); + } Ok(PostAction::Continue) }) .unwrap(); |
