diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main.rs | 15 | ||||
| -rw-r--r-- | src/niri.rs | 15 |
2 files changed, 16 insertions, 14 deletions
diff --git a/src/main.rs b/src/main.rs index 2403a20d..66616c7b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -111,19 +111,6 @@ fn main() { } event_loop - .run(None, &mut state, move |state| { - let _span = tracy_client::span!("loop callback"); - - // These should be called periodically, before flushing the clients. - state.niri.layout.refresh(); - state.niri.refresh_pointer_outputs(); - state.niri.popups.cleanup(); - state.update_focus(); - - { - let _span = tracy_client::span!("flush_clients"); - state.niri.display_handle.flush_clients().unwrap(); - } - }) + .run(None, &mut state, |state| state.refresh_and_flush_clients()) .unwrap(); } diff --git a/src/niri.rs b/src/niri.rs index f47f97ae..eb737d1f 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -223,6 +223,21 @@ impl State { Self { backend, niri } } + pub fn refresh_and_flush_clients(&mut self) { + let _span = tracy_client::span!("refresh_and_flush_clients"); + + // These should be called periodically, before flushing the clients. + self.niri.layout.refresh(); + self.niri.refresh_pointer_outputs(); + self.niri.popups.cleanup(); + self.update_focus(); + + { + let _span = tracy_client::span!("flush_clients"); + self.niri.display_handle.flush_clients().unwrap(); + } + } + pub fn move_cursor(&mut self, location: Point<f64, Logical>) { let under = self.niri.surface_under_and_global_space(location); let pointer = &self.niri.seat.get_pointer().unwrap(); |
