diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/ui/backend.rs | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/ui/backend.rs b/src/ui/backend.rs index 8180072..e67b5e9 100644 --- a/src/ui/backend.rs +++ b/src/ui/backend.rs @@ -2,6 +2,7 @@ use std::io::{self, stdout, Write}; use termion::raw::{IntoRawMode, RawTerminal}; use termion::screen::AlternateScreen; +use termion::screen::IntoAlternateScreen; use tui::backend::TermionBackend; use tui::widgets::Widget; @@ -9,7 +10,7 @@ use tui::widgets::Widget; use termion::input::MouseTerminal; trait New { - fn new() -> std::io::Result<Self> + fn new() -> io::Result<Self> where Self: Sized; } @@ -18,20 +19,20 @@ trait New { type Screen = MouseTerminal<AlternateScreen<RawTerminal<std::io::Stdout>>>; #[cfg(feature = "mouse")] impl New for Screen { - fn new() -> std::io::Result<Self> { - let stdout = std::io::stdout().into_raw_mode()?; - let alt_screen = MouseTerminal::from(AlternateScreen::from(stdout)); - return Ok(alt_screen); + // Returns alternate screen + fn new() -> io::Result<Self> { + let stdout = io::stdout().into_raw_mode()?; + Ok(MouseTerminal::from(stdout.into_alternate_screen().unwrap())) } } #[cfg(not(feature = "mouse"))] type Screen = AlternateScreen<RawTerminal<std::io::Stdout>>; #[cfg(not(feature = "mouse"))] impl New for Screen { + // Returns alternate screen fn new() -> io::Result<Self> { let stdout = std::io::stdout().into_raw_mode()?; - let alt_screen = AlternateScreen::from(stdout); - Ok(alt_screen) + Ok(stdout.into_alternate_screen().unwrap()) } } |