aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs15
-rw-r--r--src/niri.rs15
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();