diff --git a/src/input_handler/mod.rs b/src/input_handler/mod.rs index f1dd26c..aa9a866 100644 --- a/src/input_handler/mod.rs +++ b/src/input_handler/mod.rs @@ -19,7 +19,7 @@ use crate::{ app_data::{AppData, DockerControls, Header}, app_error::AppError, docker_data::DockerMessage, - ui::{enable_mouse_capture, GuiState, SelectablePanel, Status}, + ui::{GuiState, SelectablePanel, Status, Ui}, }; pub use message::InputMessages; @@ -92,7 +92,7 @@ impl InputHandler { } } } else { - enable_mouse_capture(); + Ui::enable_mouse_capture(); self.gui_state .lock() .set_info_box("✓ mouse capture enabled".to_owned()); diff --git a/src/ui/mod.rs b/src/ui/mod.rs index dcbc394..867c7e1 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -41,21 +41,21 @@ pub struct Ui { terminal: Terminal>, } -/// Enable mouse capture, but don't enable all the mouse movements, which improves performance, and is part of the fix for the weird mouse event output bug -pub fn enable_mouse_capture() { - io::stdout() - .write_all( - concat!( - crossterm::csi!("?1000h"), - crossterm::csi!("?1015h"), - crossterm::csi!("?1006h"), - ) - .as_bytes(), - ) - .unwrap_or(()); -} - impl Ui { + /// Enable mouse capture, but don't enable all the mouse movements, which improves performance, and is part of the fix for the weird mouse event output bug + pub fn enable_mouse_capture() { + io::stdout() + .write_all( + concat!( + crossterm::csi!("?1000h"), + crossterm::csi!("?1015h"), + crossterm::csi!("?1006h"), + ) + .as_bytes(), + ) + .unwrap_or(()); + } + /// Create a new Ui struct, and execute the drawing loop pub async fn create( app_data: Arc>, @@ -91,7 +91,7 @@ impl Ui { enable_raw_mode()?; let mut stdout = io::stdout(); execute!(stdout, EnterAlternateScreen)?; - enable_mouse_capture(); + Self::enable_mouse_capture(); let backend = CrosstermBackend::new(stdout); Terminal::new(backend) }