aboutsummaryrefslogtreecommitdiff
path: root/src/niri.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2023-10-10 07:55:31 +0400
committerIvan Molodetskikh <yalterz@gmail.com>2023-10-10 07:55:31 +0400
commit2508d3e08e5e918d351ef6e6daf1d983ff2a999e (patch)
tree4bb6e52d0bf3d35a04044f253c2b533aaed65f9c /src/niri.rs
parent189d1bd97b7aa241b5ad651145ca4d3ef483f505 (diff)
downloadniri-2508d3e08e5e918d351ef6e6daf1d983ff2a999e.tar.gz
niri-2508d3e08e5e918d351ef6e6daf1d983ff2a999e.tar.bz2
niri-2508d3e08e5e918d351ef6e6daf1d983ff2a999e.zip
Move refresh calls into State
Diffstat (limited to 'src/niri.rs')
-rw-r--r--src/niri.rs15
1 files changed, 15 insertions, 0 deletions
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();