diff --git a/src/raw.rs b/src/raw.rs index 5421d56591b1c500a536ba32f6709f025530b233..0dbfb569e2f6cdf8ec75c1cee83138f6cd9b8b0f 100644 --- a/src/raw.rs +++ b/src/raw.rs @@ -101,6 +101,20 @@ impl<W: Write> IntoRawMode for W { } } +impl<W: Write> RawTerminal<W> { + pub fn suspend_raw_mode(&self) -> io::Result<()> { + set_terminal_attr(&self.prev_ios)?; + Ok(()) + } + + pub fn activate_raw_mode(&self) -> io::Result<()> { + let mut ios = get_terminal_attr()?; + raw_terminal_attr(&mut ios); + set_terminal_attr(&ios)?; + Ok(()) + } +} + #[cfg(test)] mod test { use super::*;